Add the BablConversion as first argument of all conversions
authorØyvind Kolås <pippin@gimp.org>
Fri, 18 Aug 2017 20:46:26 +0000 (22:46 +0200)
committerØyvind Kolås <pippin@gimp.org>
Fri, 18 Aug 2017 20:48:50 +0000 (22:48 +0200)
This is neccesary to be able to access state of source/destination from within
registered conversions.

40 files changed:
babl/babl-conversion.c
babl/babl-conversion.h
babl/babl-core.c
babl/babl-internal.h
babl/babl-palette.c
babl/babl-types.h
babl/base/model-gray.c
babl/base/model-rgb.c
babl/base/model-ycbcr.c
babl/base/type-float.c
babl/base/type-half.c
babl/base/type-u15.c
babl/base/type-u16.c
babl/base/type-u32.c
babl/base/type-u8.c
extensions/16bit.c
extensions/CIE.c
extensions/HCY.c
extensions/HSL.c
extensions/HSV.c
extensions/cairo.c
extensions/fast-float.c
extensions/float-half.c
extensions/float.c
extensions/gegl-fixups.c
extensions/gggl-lies.c
extensions/gggl-table-lies.c
extensions/gggl-table.c
extensions/gggl.c
extensions/gimp-8bit.c
extensions/grey.c
extensions/naive-CMYK.c
extensions/simple.c
extensions/sse-half.c
extensions/sse2-float.c
extensions/sse2-int16.c
extensions/sse2-int8.c
extensions/sse4-int8.c
extensions/two-table.c
extensions/ycbcr.c

index dbdce50c051555c08e2efe1c5fe7fb14a3da641f..766e6c475fdf9925e39a7b4bb777c59f723965e5 100644 (file)
 #include "babl-db.h"
 #include "babl-ref-pixels.h"
 
-static Babl *
-conversion_new (const char    *name,
-                int            id,
-                Babl          *source,
-                Babl          *destination,
-                BablFuncLinear linear,
-                BablFuncPlane  plane,
-                BablFuncPlanar planar,
-                void          *user_data)
+Babl *
+_conversion_new (const char    *name,
+                 int            id,
+                 Babl          *source,
+                 Babl          *destination,
+                 BablFuncLinear linear,
+                 BablFuncPlane  plane,
+                 BablFuncPlanar planar,
+                 void          *user_data)
 {
   Babl *babl = NULL;
 
@@ -281,7 +281,7 @@ babl_conversion_new (const void *first_arg,
       babl = babl_db_exist (db, id, name);
     }
 
-  babl = conversion_new (name, id, source, destination, linear, plane, planar, 
+  babl = _conversion_new (name, id, source, destination, linear, plane, planar, 
                          user_data);
 
   /* Since there is not an already registered instance by the required
@@ -300,7 +300,8 @@ babl_conversion_linear_process (BablConversion *conversion,
                                 void           *destination,
                                 long            n)
 {
-  return conversion->function.linear (source, destination, n, conversion->data);
+  return conversion->function.linear ((void*)conversion,
+                                   source, destination, n, conversion->data);
 }
 
 static long
@@ -311,7 +312,8 @@ babl_conversion_plane_process (BablConversion *conversion,
                                int             dst_pitch,
                                long            n)
 {
-  return conversion->function.plane (source, destination,
+  return conversion->function.plane ((void*)conversion,
+                                     source, destination,
                                      src_pitch, dst_pitch,
                                      n,
                                      conversion->data);
@@ -334,7 +336,8 @@ babl_conversion_planar_process (BablConversion *conversion,
   memcpy (src_data, source->data, sizeof (void *) * source->components);
   memcpy (dst_data, destination->data, sizeof (void *) * destination->components);
 
-  return conversion->function.planar (source->components,
+  return conversion->function.planar ((void*)conversion,
+                                      source->components,
                                       src_data,
                                       source->pitch,
                                       destination->components,
index 902beb5553c623d041622c7614ecdf109265a386..ac7ade6d446dcb40598e81767a912ceb2f08aeb5 100644 (file)
@@ -23,19 +23,22 @@ BABL_CLASS_DECLARE (conversion);
 
 const Babl * babl_conversion (const char *name);
 
+typedef struct _BablConversion BablConversion;
+
+
 /* Signature of functions registered for reference type
  * conversions,
  */
-typedef long (*BablFuncPlane)     (const char  *src,
-                                   char        *dst,
-                                   int          src_pitch,
-                                   int          dst_pitch,
-                                   long         n,
-                                   void        *user_data);
-
+typedef long (*BablFuncPlane)     (BablConversion *conversion,
+                                   const char     *src,
+                                   char           *dst,
+                                   int             src_pitch,
+                                   int             dst_pitch,
+                                   long            n,
+                                   void           *user_data);
 
-typedef struct
-BablConversion {
+struct
+_BablConversion {
   BablInstance           instance;
   const Babl            *source;
   const Babl            *destination;
@@ -50,6 +53,6 @@ BablConversion {
   void                  *data;  /* user data */
   int                    processings;
   long                   pixels;
-} BablConversion;
+};
 
 #endif
index 00e43e82cfc4a5bae5de2fc93792ad44c2cbec05..d591d73010b879bd82a7f2cea12c8c61c5574199 100644 (file)
 #include "util.h"
 
 static long
-convert_double_double (char *src,
-                       char *dst,
-                       int   src_pitch,
-                       int   dst_pitch,
-                       long  n)
+convert_double_double (const Babl *babl,
+                       char       *src,
+                       char       *dst,
+                       int         src_pitch,
+                       int         dst_pitch,
+                       long        n)
 {
   if (src_pitch == 64 &&
       dst_pitch == 64)
@@ -77,9 +78,10 @@ convert_double_double (char *src,
 
  */
 static long
-rgba_to_rgba (char *src,
-              char *dst,
-              long  n)
+rgba_to_rgba (const Babl *babl,
+              char       *src,
+              char       *dst,
+              long        n)
 {
   memcpy (dst, src, n * sizeof (double) * 4);
   return n;
index 78f2b5655d2f9454197d6eae82d17e148443d641..c193998d1d5f8b21fbc10f4e20a8da81abec9b95 100644 (file)
@@ -319,6 +319,15 @@ static inline double babl_parse_double (const char *str)
   return result;
 }
 
+Babl *
+_conversion_new (const char    *name,
+                 int            id,
+                 Babl          *source,
+                 Babl          *destination,
+                 BablFuncLinear linear,
+                 BablFuncPlane  plane,
+                 BablFuncPlanar planar,
+                 void          *user_data);
 
 double _babl_legal_error (void);
 void babl_init_db (void);
index ad906088745ff85693a94f995deb8b67dd9d4aae..7284d6be902eb249157ccdb3481a8d43a036a1bb 100644 (file)
@@ -177,7 +177,8 @@ static BablPalette *default_palette (void)
 }
 
 static long
-rgba_to_pal (char *src,
+rgba_to_pal (Babl *conversion,
+             char *src,
              char *dst,
              long  n,
              void *dst_model_data)
@@ -218,7 +219,8 @@ rgba_to_pal (char *src,
 }
 
 static long
-rgba_to_pala (char *src,
+rgba_to_pala (Babl *conversion,
+              char *src,
               char *dst,
               long  n,
               void *dst_model_data)
@@ -264,7 +266,8 @@ rgba_to_pala (char *src,
 }
 
 static long
-pal_to_rgba (char *src,
+pal_to_rgba (Babl *conversion,
+             char *src,
              char *dst,
              long  n,
              void *src_model_data)
@@ -290,7 +293,8 @@ pal_to_rgba (char *src,
 }
 
 static long
-pala_to_rgba (char *src,
+pala_to_rgba (Babl *conversion,
+              char *src,
               char *dst,
               long  n,
               void *src_model_data)
@@ -320,10 +324,11 @@ pala_to_rgba (char *src,
 }
 
 static long
-rgba_u8_to_pal (unsigned char *src,
+rgba_u8_to_pal (Babl          *conversion,
+                unsigned char *src,
                 unsigned char *dst,
-                long  n,
-                void *src_model_data)
+                long           n,
+                void          *src_model_data)
 {
   BablPalette **palptr = src_model_data;
   BablPalette *pal;
@@ -342,7 +347,8 @@ rgba_u8_to_pal (unsigned char *src,
 }
 
 static long
-rgba_u8_to_pal_a (char *src,
+rgba_u8_to_pal_a (Babl *conversion,
+                  char *src,
                   char *dst,
                   long  n,
                   void *src_model_data)
@@ -364,7 +370,8 @@ rgba_u8_to_pal_a (char *src,
 }
 
 static long
-pal_u8_to_rgba_u8 (char *src,
+pal_u8_to_rgba_u8 (Babl *conversion,
+                   char *src,
                    char *dst,
                    long  n,
                    void *src_model_data)
@@ -392,7 +399,8 @@ pal_u8_to_rgba_u8 (char *src,
 }
 
 static long
-pala_u8_to_rgba_u8 (char *src,
+pala_u8_to_rgba_u8 (Babl *conversion,
+                    char *src,
                     char *dst,
                     long  n,
                     void *src_model_data)
@@ -424,7 +432,8 @@ pala_u8_to_rgba_u8 (char *src,
 #include "base/util.h"
 
 static inline long
-conv_pal8_pala8 (unsigned char *src, unsigned char *dst, long samples)
+conv_pal8_pala8 (Babl *conversion,
+                 unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -439,7 +448,8 @@ conv_pal8_pala8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static inline long
-conv_pala8_pal8 (unsigned char *src, unsigned char *dst, long samples)
+conv_pala8_pal8 (Babl *conversion,
+                 unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
index 252a3823f5c8a734e02f20a58c235254281cc67b..e4e5a8575c95a7e96f9a1e7ffc8516a3788da2d2 100644 (file)
  **/
 typedef union _Babl Babl;
 
+
 /* Conversion function between linear data of a either a data types or
  * color formats.
  */
-typedef long (*BablFuncLinear)    (const char  *src,
+typedef long (*BablFuncLinear)    (const Babl *conversion,
+                                   const char  *src,
                                    char  *dst,
                                    long   n,
                                    void  *user_data);
 
 /* TypePlanar,ModelPlanar and FormatPlanar */
-typedef long (*BablFuncPlanar)    (int    src_bands,
+typedef long (*BablFuncPlanar)    (const Babl *conversion,
+                                   int    src_bands,
                                    const char  *src[],
                                    int    src_pitch[],
                                    int    dst_bands,
index 239333e1fc23826182428d8239e4c16c189fba23..d2e7d6822d84c3ee79955d8d8e38f165ba44af58 100644 (file)
@@ -110,7 +110,8 @@ models (void)
 
 
 static long
-rgba_to_graya (char *src,
+rgba_to_graya (Babl *conversion,
+               char *src,
                char *dst,
                long  n)
 {
@@ -138,7 +139,8 @@ rgba_to_graya (char *src,
 }
 
 static long
-rgba_to_gray (char *src,
+rgba_to_gray (Babl *conversion,
+              char *src,
               char *dst,
               long  n)
 {
@@ -165,7 +167,8 @@ rgba_to_gray (char *src,
 
 
 static long
-rgb_to_gray_2_2 (int    src_bands,
+rgb_to_gray_2_2 (Babl  *conversion,
+                 int    src_bands,
                  char **src,
                  int   *src_pitch,
                  int    dst_bands,
@@ -202,7 +205,8 @@ rgb_to_gray_2_2 (int    src_bands,
 
 
 static long
-gray_2_2_to_rgb (int    src_bands,
+gray_2_2_to_rgb (Babl  *conversion,
+                 int    src_bands,
                  char **src,
                  int   *src_pitch,
                  int    dst_bands,
@@ -241,7 +245,8 @@ gray_2_2_to_rgb (int    src_bands,
 
 
 static long
-graya_to_rgba (char *src,
+graya_to_rgba (Babl *conversion,
+               char *src,
                char *dst,
                long  n)
 {
@@ -270,7 +275,8 @@ graya_to_rgba (char *src,
 
 
 static long
-gray_to_rgba (char *src,
+gray_to_rgba (Babl *conversion,
+              char *src,
               char *dst,
               long  n)
 {
@@ -296,7 +302,8 @@ gray_to_rgba (char *src,
 }
 
 static long
-gray_alpha_premultiplied_to_rgba (int    src_bands,
+gray_alpha_premultiplied_to_rgba (Babl  *conversion,
+                                  int    src_bands,
                                   char **src,
                                   int   *src_pitch,
                                   int    dst_bands,
@@ -333,7 +340,8 @@ gray_alpha_premultiplied_to_rgba (int    src_bands,
 
 
 static long
-rgba_to_gray_alpha_premultiplied (int    src_bands,
+rgba_to_gray_alpha_premultiplied (Babl  *conversion,
+                                  int    src_bands,
                                   char **src,
                                   int   *src_pitch,
                                   int    dst_bands,
@@ -367,7 +375,8 @@ rgba_to_gray_alpha_premultiplied (int    src_bands,
 }
 
 static long
-non_premultiplied_to_premultiplied (int    src_bands,
+non_premultiplied_to_premultiplied (Babl  *conversion,
+                                    int    src_bands,
                                     char **src,
                                     int   *src_pitch,
                                     int    dst_bands,
@@ -395,7 +404,8 @@ non_premultiplied_to_premultiplied (int    src_bands,
 }
 
 static long
-premultiplied_to_non_premultiplied (int    src_bands,
+premultiplied_to_non_premultiplied (Babl  *conversion,
+                                    int    src_bands,
                                     char **src,
                                     int   *src_pitch,
                                     int    dst_bands,
@@ -430,7 +440,8 @@ premultiplied_to_non_premultiplied (int    src_bands,
 }
 
 static long
-rgba2gray_gamma_2_2_premultiplied (char *src,
+rgba2gray_gamma_2_2_premultiplied (Babl *conversion,
+                                   char *src,
                                    char *dst,
                                    long  n)
 {
@@ -458,9 +469,9 @@ rgba2gray_gamma_2_2_premultiplied (char *src,
   return n;
 }
 
-
 static long
-gray_gamma_2_2_premultiplied2rgba (char *src,
+gray_gamma_2_2_premultiplied2rgba (Babl *conversion,
+                                   char *src,
                                    char *dst,
                                    long  n)
 {
index 4ba6f7d3f224f6f6be2f04836e8e6865adfb1d80..69c3b53a1cdd79c4bb3021bba8abd292b2803fd6 100644 (file)
@@ -151,7 +151,8 @@ models (void)
 }
 
 static long
-copy_strip_1 (int    src_bands,
+copy_strip_1 (BablConversion *conversion,
+              int    src_bands,
               char **src,
               int   *src_pitch,
               int    dst_bands,
@@ -182,7 +183,8 @@ copy_strip_1 (int    src_bands,
 }
 
 static long
-g3_gamma_2_2 (int    src_bands,
+g3_gamma_2_2 (BablConversion *conversion,
+              int    src_bands,
               char **src,
               int   *src_pitch,
               int    dst_bands,
@@ -208,7 +210,8 @@ g3_gamma_2_2 (int    src_bands,
 
 
 static long
-g3_inv_gamma_2_2 (int    src_bands,
+g3_inv_gamma_2_2 (BablConversion *conversion,
+                  int    src_bands,
                   char **src,
                   int   *src_pitch,
                   int    dst_bands,
@@ -239,7 +242,8 @@ g3_inv_gamma_2_2 (int    src_bands,
 }
 
 static long
-non_premultiplied_to_premultiplied (int    src_bands,
+non_premultiplied_to_premultiplied (BablConversion *conversion,
+                                    int    src_bands,
                                     char **src,
                                     int   *src_pitch,
                                     int    dst_bands,
@@ -268,7 +272,8 @@ non_premultiplied_to_premultiplied (int    src_bands,
 }
 
 static long
-premultiplied_to_non_premultiplied (int    src_bands,
+premultiplied_to_non_premultiplied (BablConversion *conversion,
+                                    int    src_bands,
                                     char **src,
                                     int   *src_pitch,
                                     int    dst_bands,
@@ -306,7 +311,8 @@ premultiplied_to_non_premultiplied (int    src_bands,
 
 
 static long
-rgba2rgba_gamma_2_2_premultiplied (char *src,
+rgba2rgba_gamma_2_2_premultiplied (BablConversion *conversion,
+                                   char *src,
                                    char *dst,
                                    long  samples)
 {
@@ -327,9 +333,10 @@ rgba2rgba_gamma_2_2_premultiplied (char *src,
 
 
 static long
-rgba_gamma_2_2_premultiplied2rgba (char *src,
-                                   char *dst,
-                                   long  samples)
+rgba_gamma_2_2_premultiplied2rgba (BablConversion *conversion,
+                                   char           *src,
+                                   char           *dst,
+                                   long            samples)
 {
   long n = samples;
 
@@ -358,9 +365,10 @@ rgba_gamma_2_2_premultiplied2rgba (char *src,
 
 
 static long
-rgba2rgba_gamma_2_2 (char *src,
-                     char *dst,
-                     long  samples)
+rgba2rgba_gamma_2_2 (BablConversion *conversion,
+                     char           *src,
+                     char           *dst,
+                     long            samples)
 {
   long n = samples;
 
@@ -379,7 +387,8 @@ rgba2rgba_gamma_2_2 (char *src,
 
 
 static long
-rgba_gamma_2_22rgba (char *src,
+rgba_gamma_2_22rgba (BablConversion *conversion,
+                     char *src,
                      char *dst,
                      long  samples)
 {
index 6a6370eb48d15e21835fc2bf91616767621c9351..c6de014379149c182a1c9942db5be368c748d2cc 100644 (file)
@@ -78,7 +78,8 @@ models (void)
 }
 
 static long
-rgba_to_ycbcra (char *src,
+rgba_to_ycbcra (BablConversion *conversion,
+                char *src,
                 char *dst,
                 long  n)
 {
@@ -112,7 +113,8 @@ rgba_to_ycbcra (char *src,
 
 
 static long
-rgba_to_ycbcr (char *src,
+rgba_to_ycbcr (BablConversion *conversion,
+               char *src,
                char *dst,
                long  n)
 {
@@ -143,7 +145,8 @@ rgba_to_ycbcr (char *src,
 }
 
 static long
-ycbcra_to_rgba (char *src,
+ycbcra_to_rgba (BablConversion *conversion,
+                char *src,
                 char *dst,
                 long  n)
 {
@@ -177,7 +180,8 @@ ycbcra_to_rgba (char *src,
 
 
 static long
-ycbcr_to_rgba (char *src,
+ycbcr_to_rgba (BablConversion *conversion,
+               char *src,
                char *dst,
                long  n)
 {
index ce7e40749f74e8a95c25ffb37fd11dcf713d988b..8c620218d0f3c603205a907e52d1089e47069f23 100644 (file)
@@ -26,7 +26,8 @@
 #include "babl-base.h"
 
 static long
-convert_double_float (char *src,
+convert_double_float (BablConversion *conversion,
+                      char *src,
                       char *dst,
                       int   src_pitch,
                       int   dst_pitch,
@@ -42,7 +43,8 @@ convert_double_float (char *src,
 }
 
 static long
-convert_float_double (char *src,
+convert_float_double (BablConversion *conversion,
+                      char *src,
                       char *dst,
                       int   src_pitch,
                       int   dst_pitch,
index 61a63cac378b0760980bd916fa03c705a4b8e1db..64fd15d253ef98af9dba80216f4fbdb1ddc71435 100644 (file)
@@ -184,7 +184,8 @@ static void halfp2doubles(void *target, void *source, long numel)
 }
 
 static long
-convert_double_half (char *src,
+convert_double_half (BablConversion *conversion,
+                     char *src,
                      char *dst,
                      int   src_pitch,
                      int   dst_pitch,
@@ -200,11 +201,12 @@ convert_double_half (char *src,
 }
 
 static long
-convert_half_double (char *src,
-                      char *dst,
-                      int   src_pitch,
-                      int   dst_pitch,
-                      long  n)
+convert_half_double (BablConversion *conversion,
+                     char *src,
+                     char *dst,
+                     int   src_pitch,
+                     int   dst_pitch,
+                     long  n)
 {
   while (n--)
     {
index 47e38785879f357ddd3434562d74f8496cb94e63..ee188e8b201907ae995c78935d9964b8e9d52d27 100644 (file)
 
 
 static inline long
-convert_double_u15_scaled (double   min_val,
-                           double   max_val,
-                           uint16_t min,
-                           uint16_t max,
-                           char    *src,
-                           char    *dst,
-                           int      src_pitch,
-                           int      dst_pitch,
-                           long     n)
+convert_double_u15_scaled (BablConversion *conversion,
+                           double          min_val,
+                           double          max_val,
+                           uint16_t        min,
+                           uint16_t        max,
+                           char           *src,
+                           char           *dst,
+                           int             src_pitch,
+                           int             dst_pitch,
+                           long            n)
 {
   while (n--)
     {
@@ -57,8 +58,9 @@ convert_double_u15_scaled (double   min_val,
 }
 
 static inline long
-convert_u15_double_scaled (double   min_val,
-                           double   max_val,
+convert_u15_double_scaled (BablConversion *conversion,
+                           double          min_val,
+                           double          max_val,
                            uint16_t min,
                            uint16_t max,
                            char    *src,
@@ -88,23 +90,24 @@ convert_u15_double_scaled (double   min_val,
 
 #define MAKE_CONVERSIONS(name, min_val, max_val, min, max)      \
   static long \
-  convert_ ## name ## _double (void *src, \
+  convert_ ## name ## _double (BablConversion *conversion, \
+                               void *src, \
                                void *dst, \
                                int src_pitch, \
                                int dst_pitch, \
                                long n)                               \
   { \
-    return convert_u15_double_scaled (min_val, max_val, min, max, \
+    return convert_u15_double_scaled (conversion, min_val, max_val, min, max, \
                                       src, dst, src_pitch, dst_pitch, n); \
   }                                                               \
   static long \
-  convert_double_ ## name (void *src, \
+  convert_double_ ## name (BablConversion *conversion, void *src, \
                            void *dst, \
                            int src_pitch, \
                            int dst_pitch, \
                            long n)                                 \
   { \
-    return convert_double_u15_scaled (min_val, max_val, min, max, \
+    return convert_double_u15_scaled (conversion, min_val, max_val, min, max, \
                                       src, dst, src_pitch, dst_pitch, n); \
   }
 
index 9fcad8bfa708f3de71c9a426b5d3c574690cc4ab..697f1dac5f056d362ce3a243e0b032f18a5ef482 100644 (file)
@@ -27,7 +27,8 @@
 
 
 static inline long
-convert_double_u16_scaled (double   min_val,
+convert_double_u16_scaled (BablConversion *conversion,
+                           double   min_val,
                            double   max_val,
                            uint16_t min,
                            uint16_t max,
@@ -57,7 +58,8 @@ convert_double_u16_scaled (double   min_val,
 }
 
 static inline long
-convert_u16_double_scaled (double   min_val,
+convert_u16_double_scaled (BablConversion *conversion,
+                           double   min_val,
                            double   max_val,
                            uint16_t min,
                            uint16_t max,
@@ -88,23 +90,23 @@ convert_u16_double_scaled (double   min_val,
 
 #define MAKE_CONVERSIONS(name, min_val, max_val, min, max)      \
   static long \
-  convert_ ## name ## _double (void *src, \
+  convert_ ## name ## _double (BablConversion *c, void *src, \
                                void *dst, \
                                int src_pitch, \
                                int dst_pitch, \
                                long n)                               \
   { \
-    return convert_u16_double_scaled (min_val, max_val, min, max, \
+    return convert_u16_double_scaled (c, min_val, max_val, min, max, \
                                       src, dst, src_pitch, dst_pitch, n); \
   }                                                               \
   static long \
-  convert_double_ ## name (void *src, \
+  convert_double_ ## name (BablConversion *c, void *src, \
                            void *dst, \
                            int src_pitch, \
                            int dst_pitch, \
                            long n)                                 \
   { \
-    return convert_double_u16_scaled (min_val, max_val, min, max, \
+    return convert_double_u16_scaled (c, min_val, max_val, min, max, \
                                       src, dst, src_pitch, dst_pitch, n); \
   }
 
index fc38a019dd8d49c3f95262c5615de870216eddc5..b934dbe55ef17faa6bc14b0e3f1624dc81d4d2db 100644 (file)
@@ -26,7 +26,8 @@
 #include "babl-base.h"
 
 static inline long
-convert_double_u32_scaled (double   min_val,
+convert_double_u32_scaled (BablConversion *c,
+                           double   min_val,
                            double   max_val,
                            uint32_t min,
                            uint32_t max,
@@ -56,7 +57,8 @@ convert_double_u32_scaled (double   min_val,
 }
 
 static inline long
-convert_u32_double_scaled (double   min_val,
+convert_u32_double_scaled (BablConversion *c,
+                           double   min_val,
                            double   max_val,
                            uint32_t min,
                            uint32_t max,
@@ -87,23 +89,23 @@ convert_u32_double_scaled (double   min_val,
 
 #define MAKE_CONVERSIONS(name, min_val, max_val, min, max)      \
   static long \
-  convert_ ## name ## _double (void *src, \
+  convert_ ## name ## _double (BablConversion *c, void *src, \
                                void *dst, \
                                int src_pitch, \
                                int dst_pitch, \
                                long n)                               \
   { \
-    return convert_u32_double_scaled (min_val, max_val, min, max, \
+    return convert_u32_double_scaled (c, min_val, max_val, min, max, \
                                       src, dst, src_pitch, dst_pitch, n); \
   }                                                               \
   static long \
-  convert_double_ ## name (void *src, \
+  convert_double_ ## name (BablConversion *c, void *src, \
                            void *dst, \
                            int src_pitch, \
                            int dst_pitch, \
                            long n)                                 \
   { \
-    return convert_double_u32_scaled (min_val, max_val, min, max, \
+    return convert_double_u32_scaled (c, min_val, max_val, min, max, \
                                       src, dst, src_pitch, dst_pitch, n); \
   }
 
index 9a67a0e3192edc97c2f40d2b61ad4d68fac86b20..86d889e6246d93bbcfa054856cb5006586af8ced 100644 (file)
@@ -26,7 +26,8 @@
 
 #include <math.h>
 static inline long
-convert_double_u8_scaled (double        min_val,
+convert_double_u8_scaled (BablConversion *c,
+                          double        min_val,
                           double        max_val,
                           unsigned char min,
                           unsigned char max,
@@ -56,7 +57,8 @@ convert_double_u8_scaled (double        min_val,
 }
 
 static inline long
-convert_u8_double_scaled (double        min_val,
+convert_u8_double_scaled (BablConversion *c,
+                          double        min_val,
                           double        max_val,
                           unsigned char min,
                           unsigned char max,
@@ -88,23 +90,23 @@ convert_u8_double_scaled (double        min_val,
 
 #define MAKE_CONVERSIONS(name, min_val, max_val, min, max)      \
   static long \
-  convert_ ## name ## _double (void *src, \
+  convert_ ## name ## _double (BablConversion *c, void *src, \
                                void *dst, \
                                int src_pitch, \
                                int dst_pitch, \
                                long n)                               \
   { \
-    return convert_u8_double_scaled (min_val, max_val, min, max, \
+    return convert_u8_double_scaled (c, min_val, max_val, min, max, \
                                      src, dst, src_pitch, dst_pitch, n); \
   }                                                               \
   static long \
-  convert_double_ ## name (void *src, \
+  convert_double_ ## name (BablConversion *c, void *src, \
                            void *dst, \
                            int src_pitch, \
                            int dst_pitch, \
                            long n)                                 \
   { \
-    return convert_double_u8_scaled (min_val, max_val, min, max, \
+    return convert_double_u8_scaled (c, min_val, max_val, min, max, \
                                      src, dst, src_pitch, dst_pitch, n); \
   }
 
index 96701ef9758352ec50c46631f1f23cbd15f3eb1b..9071fad6993aac1b4c5919a18dfe4074792aedec 100644 (file)
@@ -26,7 +26,7 @@
 #include "extensions/util.h"
 
 static inline long
-conv_rgbu16_rgbau16 (unsigned char *src, 
+conv_rgbu16_rgbau16 (const Babl *conversion,unsigned char *src, 
                      unsigned char *dst, 
                      long           samples)
 
@@ -48,7 +48,7 @@ conv_rgbu16_rgbau16 (unsigned char *src,
 }
 
 static inline long
-conv_yu16_yau16 (unsigned char *src, 
+conv_yu16_yau16 (const Babl *conversion,unsigned char *src, 
                  unsigned char *dst, 
                  long           samples)
 
index 040c03c4be15d90582db65a8b84505d87b8b252b..61c2bce6956884e07170d8dbf6b7190b31e43a55 100644 (file)
@@ -300,7 +300,8 @@ LAB_to_XYZ (double L,
 }
 
 static long
-rgba_to_lab (char *src,
+rgba_to_lab (Babl *babl,
+             char *src,
              char *dst,
              long  n)
 {
@@ -328,7 +329,8 @@ rgba_to_lab (char *src,
 }
 
 static long
-lab_to_rgba (char *src,
+lab_to_rgba (Babl *babl,
+             char *src,
              char *dst,
              long  n)
 {
@@ -357,7 +359,8 @@ lab_to_rgba (char *src,
 }
 
 static long
-rgba_to_laba (char *src,
+rgba_to_laba (Babl *babl,
+              char *src,
               char *dst,
               long  n)
 {
@@ -387,7 +390,8 @@ rgba_to_laba (char *src,
 }
 
 static long
-laba_to_rgba (char *src,
+laba_to_rgba (Babl *babl,
+              char *src,
               char *dst,
               long  n)
 {
@@ -441,7 +445,8 @@ ab_to_CHab (double  a,
 }
 
 static long
-rgba_to_lchab (char *src,
+rgba_to_lchab (Babl *babl,
+               char *src,
                char *dst,
                long  n)
 {
@@ -472,7 +477,8 @@ rgba_to_lchab (char *src,
 }
 
 static long
-lchab_to_rgba (char *src,
+lchab_to_rgba (Babl *babl,
+               char *src,
                char *dst,
                long  n)
 {
@@ -504,7 +510,8 @@ lchab_to_rgba (char *src,
 }
 
 static long
-rgba_to_lchaba (char *src,
+rgba_to_lchaba (Babl *babl,
+                char *src,
                 char *dst,
                 long  n)
 {
@@ -537,7 +544,8 @@ rgba_to_lchaba (char *src,
 }
 
 static long
-lchaba_to_rgba (char *src,
+lchaba_to_rgba (Babl *babl,
+                char *src,
                 char *dst,
                 long  n)
 {
@@ -1143,7 +1151,8 @@ formats (void)
 /******** begin  integer RGB/CIE color space conversions **************/
 
 static inline long
-convert_double_u8_scaled (double        min_val,
+convert_double_u8_scaled (const Babl   *babl,
+                          double        min_val,
                           double        max_val,
                           unsigned char min,
                           unsigned char max,
@@ -1173,7 +1182,8 @@ convert_double_u8_scaled (double        min_val,
 }
 
 static inline long
-convert_u8_double_scaled (double        min_val,
+convert_u8_double_scaled (const Babl   *c,
+                          double        min_val,
                           double        max_val,
                           unsigned char min,
                           unsigned char max,
@@ -1205,23 +1215,23 @@ convert_u8_double_scaled (double        min_val,
 
 #define MAKE_CONVERSIONS(name, min_val, max_val, min, max) \
   static long \
-  convert_ ## name ## _double (char *src, \
+  convert_ ## name ## _double (const Babl *c, char *src, \
                                char *dst, \
                                int src_pitch, \
                                int dst_pitch, \
                                long n)        \
   { \
-    return convert_u8_double_scaled (min_val, max_val, min, max, \
+    return convert_u8_double_scaled (c, min_val, max_val, min, max, \
                                      src, dst, src_pitch, dst_pitch, n); \
   }                                                               \
   static long \
-  convert_double_ ## name (char *src, \
+  convert_double_ ## name (const Babl *c, char *src, \
                            char *dst, \
                            int src_pitch, \
                            int dst_pitch, \
                            long n)        \
   { \
-    return convert_double_u8_scaled (min_val, max_val, min, max, \
+    return convert_double_u8_scaled (c, min_val, max_val, min, max, \
                                      src, dst, src_pitch, dst_pitch, n); \
   }
 
@@ -1283,7 +1293,8 @@ types_u8 (void)
 }
 
 static inline long
-convert_double_u16_scaled (double         min_val,
+convert_double_u16_scaled (const Babl    *babl,
+                           double         min_val,
                            double         max_val,
                            unsigned short min,
                            unsigned short max,
@@ -1313,7 +1324,8 @@ convert_double_u16_scaled (double         min_val,
 }
 
 static inline long
-convert_u16_double_scaled (double         min_val,
+convert_u16_double_scaled (const Babl    *babl,
+                           double         min_val,
                            double         max_val,
                            unsigned short min,
                            unsigned short max,
@@ -1344,23 +1356,23 @@ convert_u16_double_scaled (double         min_val,
 
 #define MAKE_CONVERSIONS(name, min_val, max_val, min, max)      \
   static long \
-  convert_ ## name ## _double (char *src, \
+  convert_ ## name ## _double (const Babl *c, char *src, \
                                char *dst, \
                                int src_pitch, \
                                int dst_pitch, \
                                long n)        \
   { \
-    return convert_u16_double_scaled (min_val, max_val, min, max, \
+    return convert_u16_double_scaled (c, min_val, max_val, min, max, \
                                       src, dst, src_pitch, dst_pitch, n); \
   }                                                               \
   static long \
-  convert_double_ ## name (char *src, \
+  convert_double_ ## name (const Babl *c, char *src, \
                            char *dst, \
                            int src_pitch, \
                            int dst_pitch, \
                            long n)        \
   { \
-    return convert_double_u16_scaled (min_val, max_val, min, max, \
+    return convert_double_u16_scaled (c, min_val, max_val, min, max, \
                                       src, dst, src_pitch, dst_pitch, n); \
   }
 
index 0993842962fa19fc4a637624130d2ec3700bb196..27a221d46c352ac8133a015341d12e3df075404f 100644 (file)
 #define RGB_LUMA_BLUE 0.114 //0.0722
 #define EPSILON 1e-10
 
-static long rgba_to_hcya     (char *src,
+static long rgba_to_hcya     (const Babl *conversion,char *src,
                               char *dst,
                               long  samples);
 
-static long hcya_to_rgba     (char *src,
+static long hcya_to_rgba     (const Babl *conversion,char *src,
                               char *dst,
                               long  samples);
 
-static long rgba_to_hcy      (char *src,
+static long rgba_to_hcy      (const Babl *conversion,char *src,
                               char *dst,
                               long  samples);
 
-static long hcy_to_rgba      (char *src,
+static long hcy_to_rgba      (const Babl *conversion,char *src,
                               char *dst,
                               long  samples);
 
@@ -287,7 +287,7 @@ hcy_to_rgba_step (char *src,
 }
 
 static long
-rgba_to_hcya (char *src,
+rgba_to_hcya (const Babl *conversion,char *src,
               char *dst,
               long  samples)
 {
@@ -309,7 +309,7 @@ rgba_to_hcya (char *src,
 }
 
 static long
-hcya_to_rgba (char *src,
+hcya_to_rgba (const Babl *conversion,char *src,
               char *dst,
               long  samples)
 {
@@ -331,7 +331,7 @@ hcya_to_rgba (char *src,
 }
 
 static long
-rgba_to_hcy (char *src,
+rgba_to_hcy (const Babl *conversion,char *src,
              char *dst,
              long  samples)
 {
@@ -349,7 +349,7 @@ rgba_to_hcy (char *src,
 }
 
 static long
-hcy_to_rgba (char *src,
+hcy_to_rgba (const Babl *conversion,char *src,
              char *dst,
              long  samples)
 {
index 827e0285847506e27d11411725366b1671c4f8e5..14d903102bcafcd5b71cb5eb9db69d3350cb7791 100644 (file)
 #define MAX(a,b) ((a < b) ? b : a)
 #define EPSILON  1.0e-10
 
-static long  rgba_to_hsla     (char   *src,
+static long  rgba_to_hsla     (const Babl *conversion,char   *src,
                                char   *dst,
                                long    samples);
-static long  hsla_to_rgba     (char   *src,
+static long  hsla_to_rgba     (const Babl *conversion,char   *src,
                                char   *dst,
                                long    samples);
-static long  rgba_to_hsl      (char   *src,
+static long  rgba_to_hsl      (const Babl *conversion,char   *src,
                                char   *dst,
                                long    samples);
-static long  hsl_to_rgba      (char   *src,
+static long  hsl_to_rgba      (const Babl *conversion,char   *src,
                                char   *dst,
                                long    samples);
 static void  rgb_to_hsl_step  (double *src,
@@ -157,7 +157,7 @@ rgb_to_hsl_step (double* src,
 
 
 static long
-rgba_to_hsla (char *src,
+rgba_to_hsla (const Babl *conversion,char *src,
               char *dst,
               long  samples)
 {
@@ -180,7 +180,7 @@ rgba_to_hsla (char *src,
 
 
 static long
-rgba_to_hsl (char *src,
+rgba_to_hsl (const Babl *conversion,char *src,
              char *dst,
              long  samples)
 {
@@ -244,7 +244,7 @@ hsl_to_rgb_step (double *src,
 
 
 static long
-hsla_to_rgba (char *src,
+hsla_to_rgba (const Babl *conversion,char *src,
               char *dst,
               long  samples)
 {
@@ -267,7 +267,7 @@ hsla_to_rgba (char *src,
 
 
 static long
-hsl_to_rgba (char *src,
+hsl_to_rgba (const Babl *conversion,char *src,
              char *dst,
              long  samples)
 {
index c830a0c36ad6895d8bc9aad50ddef9268d18aa5a..bcab20605e1d399e6fb0e47dc33a07d08c545cf2 100644 (file)
 #define MAX(a,b) (a < b) ? b : a;
 #define EPSILON  1.0e-10
 
-static long rgba_to_hsva     (char *src,
+static long rgba_to_hsva     (const Babl *conversion,char *src,
                               char *dst,
                               long  samples);
 
-static long hsva_to_rgba     (char *src,
+static long hsva_to_rgba     (const Babl *conversion,char *src,
                               char *dst,
                               long  samples);
 
-static long rgba_to_hsv      (char *src,
+static long rgba_to_hsv      (const Babl *conversion,char *src,
                               char *dst,
                               long  samples);
 
-static long hsv_to_rgba      (char *src,
+static long hsv_to_rgba      (const Babl *conversion,char *src,
                               char *dst,
                               long  samples);
 
@@ -275,7 +275,7 @@ hsv_to_rgba_step (char *src,
 }
 
 static long
-rgba_to_hsva (char *src,
+rgba_to_hsva (const Babl *conversion,char *src,
               char *dst,
               long  samples)
 {
@@ -297,7 +297,7 @@ rgba_to_hsva (char *src,
 }
 
 static long
-hsva_to_rgba (char *src,
+hsva_to_rgba (const Babl *conversion,char *src,
               char *dst,
               long  samples)
 {
@@ -319,7 +319,7 @@ hsva_to_rgba (char *src,
 }
 
 static long
-rgba_to_hsv (char *src,
+rgba_to_hsv (const Babl *conversion,char *src,
              char *dst,
              long  samples)
 {
@@ -337,7 +337,7 @@ rgba_to_hsv (char *src,
 }
 
 static long
-hsv_to_rgba (char *src,
+hsv_to_rgba (const Babl *conversion,char *src,
              char *dst,
              long  samples)
 {
index 4f82e8d73d79177e39b41a324ac7a27fc3e7c641..bd640d95e86e57a249ca562162dfc5252a06d60b 100644 (file)
@@ -26,7 +26,7 @@
 int init (void);
 
 static inline long
-conv_rgba8_cairo24_le (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba8_cairo24_le (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
   uint32_t *srci = (void *)src;
@@ -45,7 +45,7 @@ conv_rgba8_cairo24_le (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static inline long
-conv_rgb8_cairo24_le (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb8_cairo24_le (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
   while (n--)
@@ -65,7 +65,7 @@ conv_rgb8_cairo24_le (unsigned char *src, unsigned char *dst, long samples)
 
 #if 0
 static inline long
-conv_rgbA8_premul_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbA8_premul_cairo32_le (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
   while (n--)
@@ -85,7 +85,7 @@ conv_rgbA8_premul_cairo32_le (unsigned char *src, unsigned char *dst, long sampl
 #else
 
 static inline long
-conv_rgbA8_premul_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbA8_premul_cairo32_le (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
   uint32_t *srci = (void *)src;
@@ -104,7 +104,7 @@ conv_rgbA8_premul_cairo32_le (unsigned char *src, unsigned char *dst, long sampl
 }
 #endif
 
-static long conv_cairo32_rgbA8_premul_le (unsigned char *src, unsigned char *dst, long samples)
+static long conv_cairo32_rgbA8_premul_le (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
   while (n--)
@@ -123,7 +123,7 @@ static long conv_cairo32_rgbA8_premul_le (unsigned char *src, unsigned char *dst
 }
 
 
-static long conv_cairo32_rgbAF_premul_le (unsigned char *src, unsigned char *dst_char, long samples)
+static long conv_cairo32_rgbAF_premul_le (const Babl *conversion,unsigned char *src, unsigned char *dst_char, long samples)
 {
   long n = samples;
   float *dst = (void*)dst_char;
@@ -143,7 +143,7 @@ static long conv_cairo32_rgbAF_premul_le (unsigned char *src, unsigned char *dst
 }
 
 static inline long
-conv_rgbA8_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbA8_cairo32_le (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
   while (n--)
@@ -163,7 +163,7 @@ conv_rgbA8_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static inline long
-conv_rgb8_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb8_cairo32_le (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
   while (n--)
@@ -184,7 +184,7 @@ conv_rgb8_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
 
 
 static inline long
-conv_yA8_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
+conv_yA8_cairo32_le (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
   while (n--)
@@ -204,7 +204,7 @@ conv_yA8_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static inline long
-conv_yA16_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
+conv_yA16_cairo32_le (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
   uint16_t *ssrc = (void*) src;
@@ -222,7 +222,7 @@ conv_yA16_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static inline long
-conv_y8_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
+conv_y8_cairo32_le (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
   while (n--)
@@ -237,7 +237,7 @@ conv_y8_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static inline long
-conv_y16_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
+conv_y16_cairo32_le (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
   uint16_t *s16 = (void*)src;
@@ -256,7 +256,7 @@ conv_y16_cairo32_le (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgbA_gamma_float_cairo32_le (unsigned char *src,
+conv_rgbA_gamma_float_cairo32_le (const Babl *conversion,unsigned char *src,
                                   unsigned char *dst,
                                   long           samples)
 {
@@ -280,7 +280,7 @@ conv_rgbA_gamma_float_cairo32_le (unsigned char *src,
 }
 
 static long
-conv_rgbafloat_cairo32_le (unsigned char *src,
+conv_rgbafloat_cairo32_le (const Babl *conversion,unsigned char *src,
                            unsigned char *dst,
                            long           samples)
 {
@@ -326,7 +326,7 @@ conv_rgbafloat_cairo32_le (unsigned char *src,
 
 
 static long
-conv_yafloat_cairo32_le (unsigned char *src,
+conv_yafloat_cairo32_le (const Babl *conversion,unsigned char *src,
                          unsigned char *dst,
                          long           samples)
 {
index 163ffe86add99a416069ccfcb613119c9af8188d..8d5f30bb34af5efc1045f018aa730b44099bcaf6 100644 (file)
@@ -288,7 +288,7 @@ babl_lookup_free (BablLookup *lookup)
 #endif
 
 static INLINE long
-conv_rgbaF_linear_rgbAF_gamma (unsigned char *src, 
+conv_rgbaF_linear_rgbAF_gamma (const Babl *conversion,unsigned char *src, 
                                unsigned char *dst, 
                                long           samples)
 {
@@ -330,7 +330,7 @@ conv_rgbaF_linear_rgbAF_gamma (unsigned char *src,
 
 
 static INLINE long
-conv_rgbaF_linear_rgba8_gamma (unsigned char *src, 
+conv_rgbaF_linear_rgba8_gamma (const Babl *conversion,unsigned char *src, 
                                unsigned char *dst, 
                                long           samples)
 {
@@ -367,7 +367,7 @@ conv_rgbaF_linear_rgba8_gamma (unsigned char *src,
 }
 
 static INLINE long
-conv_rgbaF_linear_rgbA8_gamma (unsigned char *src, 
+conv_rgbaF_linear_rgbA8_gamma (const Babl *conversion,unsigned char *src, 
                                unsigned char *dst, 
                                long           samples)
 {
@@ -412,7 +412,7 @@ conv_rgbaF_linear_rgbA8_gamma (unsigned char *src,
 }
 
 static INLINE long
-conv_yaF_linear_rgbA8_gamma (unsigned char *src, 
+conv_yaF_linear_rgbA8_gamma (const Babl *conversion,unsigned char *src, 
                              unsigned char *dst, 
                              long           samples)
 {
@@ -453,7 +453,7 @@ conv_yaF_linear_rgbA8_gamma (unsigned char *src,
 
 
 static long
-conv_rgbaF_linear_rgbA8_gamma_cairo (unsigned char *src, 
+conv_rgbaF_linear_rgbA8_gamma_cairo (const Babl *conversion,unsigned char *src, 
                                      unsigned char *dst, 
                                      long           samples)
 {
@@ -498,7 +498,7 @@ conv_rgbaF_linear_rgbA8_gamma_cairo (unsigned char *src,
 }
 
 static INLINE long
-conv_rgbAF_linear_rgbAF_gamma (unsigned char *src, 
+conv_rgbAF_linear_rgbAF_gamma (const Babl *conversion,unsigned char *src, 
                                unsigned char *dst, 
                                long           samples)
 {
@@ -539,7 +539,7 @@ conv_rgbAF_linear_rgbAF_gamma (unsigned char *src,
 }
 
 static INLINE long
-conv_rgbaF_linear_rgbaF_gamma (unsigned char *src, 
+conv_rgbaF_linear_rgbaF_gamma (const Babl *conversion,unsigned char *src, 
                                unsigned char *dst, 
                                long           samples)
 {
@@ -558,7 +558,7 @@ conv_rgbaF_linear_rgbaF_gamma (unsigned char *src,
 }
 
 static INLINE long
-conv_rgbF_linear_rgbF_gamma (unsigned char *src, 
+conv_rgbF_linear_rgbF_gamma (const Babl *conversion,unsigned char *src, 
                              unsigned char *dst, 
                              long           samples)
 {
@@ -577,7 +577,7 @@ conv_rgbF_linear_rgbF_gamma (unsigned char *src,
 
 
 static INLINE long
-conv_rgbaF_gamma_rgbaF_linear (unsigned char *src, 
+conv_rgbaF_gamma_rgbaF_linear (const Babl *conversion,unsigned char *src, 
                                unsigned char *dst, 
                                long           samples)
 {
@@ -596,7 +596,7 @@ conv_rgbaF_gamma_rgbaF_linear (unsigned char *src,
 }
 
 static INLINE long
-conv_rgbF_gamma_rgbF_linear (unsigned char *src, 
+conv_rgbF_gamma_rgbF_linear (const Babl *conversion,unsigned char *src, 
                              unsigned char *dst, 
                              long           samples)
 {
index ff3762589939f6b31473e9bbf31bd34634b23e77..08b7dfb3f6882a93e157576f7c97bf6c7ffb1e24 100644 (file)
@@ -178,53 +178,53 @@ static void singles2halfp(void *target, const void *source, long numel)
 }
 
 static inline long
-conv_yHalf_yF (const uint16_t *src, float *dst, long samples)
+conv_yHalf_yF (const Babl *conversion,const uint16_t *src, float *dst, long samples)
 {
   halfp2singles(dst, src, samples);
   return samples;
 }
 
 static long
-conv_yaHalf_yaF (const uint16_t *src, float *dst, long samples)
+conv_yaHalf_yaF (const Babl *conversion,const uint16_t *src, float *dst, long samples)
 {
-  return conv_yHalf_yF (src, dst, samples * 2) / 2;
+  return conv_yHalf_yF (conversion, src, dst, samples * 2) / 2;
 }
 
 static long
-conv_rgbHalf_rgbF (const uint16_t *src, float *dst, long samples)
+conv_rgbHalf_rgbF (const Babl *conversion,const uint16_t *src, float *dst, long samples)
 {
-  return conv_yHalf_yF (src, dst, samples * 3) / 3;
+  return conv_yHalf_yF (conversion, src, dst, samples * 3) / 3;
 }
 
 static long
-conv_rgbaHalf_rgbaF (const uint16_t *src, float *dst, long samples)
+conv_rgbaHalf_rgbaF (const Babl *conversion,const uint16_t *src, float *dst, long samples)
 {
-  return conv_yHalf_yF (src, dst, samples * 4) / 4;
+  return conv_yHalf_yF (conversion, src, dst, samples * 4) / 4;
 }
 
 static inline long
-conv_yF_yHalf (const float *src, uint16_t *dst, long samples)
+conv_yF_yHalf (const Babl *conversion,const float *src, uint16_t *dst, long samples)
 {
   singles2halfp (dst, src, samples);
   return samples;
 }
 
 static long
-conv_yaF_yaHalf (const float *src, uint16_t *dst, long samples)
+conv_yaF_yaHalf (const Babl *conversion,const float *src, uint16_t *dst, long samples)
 {
-  return conv_yF_yHalf (src, dst, samples * 2) / 2;
+  return conv_yF_yHalf (conversion, src, dst, samples * 2) / 2;
 }
 
 static long
-conv_rgbF_rgbHalf (const float *src, uint16_t *dst, long samples)
+conv_rgbF_rgbHalf (const Babl *conversion,const float *src, uint16_t *dst, long samples)
 {
-  return conv_yF_yHalf (src, dst, samples * 3) / 3;
+  return conv_yF_yHalf (conversion, src, dst, samples * 3) / 3;
 }
 
 static long
-conv_rgbaF_rgbaHalf (const float *src, uint16_t *dst, long samples)
+conv_rgbaF_rgbaHalf (const Babl *conversion,const float *src, uint16_t *dst, long samples)
 {
-  return conv_yF_yHalf (src, dst, samples * 4) / 4;
+  return conv_yF_yHalf (conversion, src, dst, samples * 4) / 4;
 }
 
 int init (void);
index 9460804a2c3d948e6cf7f1307762b3422c9242d2..4cea8b54662750d2bc6897725b5a3ceb11e4d07d 100644 (file)
@@ -30,7 +30,7 @@
 
 
 static INLINE long
-conv_rgbaF_linear_rgbAF_gamma (unsigned char *src, 
+conv_rgbaF_linear_rgbAF_gamma (const Babl *conversion,unsigned char *src, 
                                unsigned char *dst, 
                                long           samples)
 {
@@ -50,7 +50,7 @@ conv_rgbaF_linear_rgbAF_gamma (unsigned char *src,
 }
 
 static INLINE long
-conv_rgbAF_linear_rgbAF_gamma (unsigned char *src, 
+conv_rgbAF_linear_rgbAF_gamma (const Babl *conversion,unsigned char *src, 
                                unsigned char *dst, 
                                long           samples)
 {
@@ -89,7 +89,7 @@ conv_rgbAF_linear_rgbAF_gamma (unsigned char *src,
 }
 
 static INLINE long
-conv_rgbaF_linear_rgbaF_gamma (unsigned char *src, 
+conv_rgbaF_linear_rgbaF_gamma (const Babl *conversion,unsigned char *src, 
                                unsigned char *dst, 
                                long           samples)
 {
@@ -108,7 +108,7 @@ conv_rgbaF_linear_rgbaF_gamma (unsigned char *src,
 }
 
 static INLINE long
-conv_rgbF_linear_rgbF_gamma (unsigned char *src, 
+conv_rgbF_linear_rgbF_gamma (const Babl *conversion,unsigned char *src, 
                              unsigned char *dst, 
                              long           samples)
 {
@@ -127,7 +127,7 @@ conv_rgbF_linear_rgbF_gamma (unsigned char *src,
 
 
 static INLINE long
-conv_rgbaF_gamma_rgbaF_linear (unsigned char *src, 
+conv_rgbaF_gamma_rgbaF_linear (const Babl *conversion,unsigned char *src, 
                                unsigned char *dst, 
                                long           samples)
 {
@@ -146,7 +146,7 @@ conv_rgbaF_gamma_rgbaF_linear (unsigned char *src,
 }
 
 static INLINE long
-conv_rgbF_gamma_rgbF_linear (unsigned char *src, 
+conv_rgbF_gamma_rgbF_linear (const Babl *conversion,unsigned char *src, 
                              unsigned char *dst, 
                              long           samples)
 {
index c32968c6dc3cc1f3fd107f6c321951e842eeee27..96cb6e398229b386cddf159c8e7f96201613fdbf 100644 (file)
@@ -146,7 +146,7 @@ gggl_float_to_index16 (float f)
 }
 
 static INLINE long
-conv_F_8 (unsigned char *src, unsigned char *dst, long samples)
+conv_F_8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -164,7 +164,7 @@ conv_F_8 (unsigned char *src, unsigned char *dst, long samples)
 
 
 static INLINE long
-conv_F_8g (unsigned char *src, unsigned char *dst, long samples)
+conv_F_8g (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -182,7 +182,7 @@ conv_F_8g (unsigned char *src, unsigned char *dst, long samples)
 
 
 static INLINE long __attribute__((unused))
-conv_8_F (unsigned char *src, unsigned char *dst, long samples)
+conv_8_F (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -199,7 +199,7 @@ conv_8_F (unsigned char *src, unsigned char *dst, long samples)
 
 
 static INLINE long
-conv_rgbaF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgb8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -227,7 +227,7 @@ conv_rgbaF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
 
 
 static INLINE long __attribute__((unused))
-conv_rgbaF_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgba8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -259,16 +259,16 @@ conv_rgbaF_rgba8 (unsigned char *src, unsigned char *dst, long samples)
 #define conv_rgbaF_rgbP8    conv_rgbaF_rgba8
 
 static INLINE long __attribute__((unused))
-conv_rgbF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbF_rgb8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_8g (src, dst, samples * 3);
+  conv_F_8g (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static INLINE long __attribute__((unused))
-conv_gaF_ga8 (unsigned char *src, unsigned char *dst, long samples)
+conv_gaF_ga8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_8 (src, dst, samples * 2);
+  conv_F_8 (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -278,7 +278,7 @@ conv_gaF_ga8 (unsigned char *src, unsigned char *dst, long samples)
 
 
 static INLINE long
-conv_rgba8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba8_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -304,7 +304,7 @@ conv_rgba8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static INLINE long
-conv_rgb8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb8_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -329,7 +329,7 @@ conv_rgb8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgbAF_rgb8 (unsigned char *srcc,
+conv_rgbAF_rgb8 (const Babl *conversion,unsigned char *srcc,
                  unsigned char *dstc,
                  long           samples)
 {
@@ -360,7 +360,7 @@ conv_rgbAF_rgb8 (unsigned char *srcc,
 }
 
 static long
-conv_bgrA8_rgba8 (unsigned char *srcc,
+conv_bgrA8_rgba8 (const Babl *conversion,unsigned char *srcc,
                   unsigned char *dstc,
                   long           samples)
 {
@@ -382,7 +382,7 @@ conv_bgrA8_rgba8 (unsigned char *srcc,
 }
 
 static long
-conv_rgbaF_rgbAF (unsigned char *srcc,
+conv_rgbaF_rgbAF (const Babl *conversion,unsigned char *srcc,
                   unsigned char *dstc,
                   long           samples)
 {
@@ -404,7 +404,7 @@ conv_rgbaF_rgbAF (unsigned char *srcc,
 }
 
 static long
-conv_rgbAF_rgbaF (unsigned char *srcc,
+conv_rgbAF_rgbaF (const Babl *conversion,unsigned char *srcc,
                   unsigned char *dstc,
                   long           samples)
 {
@@ -432,7 +432,7 @@ conv_rgbAF_rgbaF (unsigned char *srcc,
 
 
 static long
-conv_rgbAF_lrgba8 (unsigned char *srcc,
+conv_rgbAF_lrgba8 (const Babl *conversion,unsigned char *srcc,
                    unsigned char *dstc,
                    long           samples)
 {
index 3d1627f3bf690dd7750d08e898ac483bd562349f..76d4d26d33441730c2ecfae2fcd1976064146340 100644 (file)
@@ -49,7 +49,7 @@
  */
 
 static long
-conv_F_8 (unsigned char *src, unsigned char *dst, long samples)
+conv_F_8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -75,7 +75,7 @@ conv_F_8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_F_16 (unsigned char *src, unsigned char *dst, long samples)
+conv_F_16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -103,7 +103,7 @@ conv_F_16 (unsigned char *src, unsigned char *dst, long samples)
 
 
 static long
-conv_8_F (unsigned char *src, unsigned char *dst, long samples)
+conv_8_F (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -117,7 +117,7 @@ conv_8_F (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_16_F (unsigned char *src, unsigned char *dst, long samples)
+conv_16_F (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -131,7 +131,7 @@ conv_16_F (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_F_D (unsigned char *src, unsigned char *dst, long samples)
+conv_F_D (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -145,7 +145,7 @@ conv_F_D (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_D_F (unsigned char *src, unsigned char *dst, long samples)
+conv_D_F (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -158,7 +158,7 @@ conv_D_F (unsigned char *src, unsigned char *dst, long samples)
   return samples;
 }
 static long
-conv_16_8 (unsigned char *src, unsigned char *dst, long samples)
+conv_16_8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -173,7 +173,7 @@ conv_16_8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_8_16 (unsigned char *src, unsigned char *dst, long samples)
+conv_8_16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -188,25 +188,25 @@ conv_8_16 (unsigned char *src, unsigned char *dst, long samples)
 
 /*********/
 static long
-conv_rgbaF_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgba8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_8 (src, dst, samples * 4);
+  conv_F_8 (conversion, src, dst, samples * 4);
   return samples;
 }
 
 #define conv_rgbaF_rgbP8    conv_rgbaF_rgba8
 
 static long
-conv_rgbF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbF_rgb8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_8 (src, dst, samples * 3);
+  conv_F_8 (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_gaF_ga8 (unsigned char *src, unsigned char *dst, long samples)
+conv_gaF_ga8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_8 (src, dst, samples * 2);
+  conv_F_8 (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -215,37 +215,37 @@ conv_gaF_ga8 (unsigned char *src, unsigned char *dst, long samples)
 #define conv_gAF_gA8        conv_gaF_ga8
 
 static long
-conv_rgbaF_rgba16 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgba16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_16 (src, dst, samples * 4);
+  conv_F_16 (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgbaF_rgbaD (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgbaD (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_D (src, dst, samples * 4);
+  conv_F_D (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgbaD_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaD_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_D_F (src, dst, samples * 4);
+  conv_D_F (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgbF_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbF_rgb16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_16 (src, dst, samples * 3);
+  conv_F_16 (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_gaF_ga16 (unsigned char *src, unsigned char *dst, long samples)
+conv_gaF_ga16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_16 (src, dst, samples * 2);
+  conv_F_16 (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -256,23 +256,23 @@ conv_gaF_ga16 (unsigned char *src, unsigned char *dst, long samples)
 #define conv_gAF_gA16        conv_gaF_ga16
 
 static long
-conv_rgba8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba8_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_8_F (src, dst, samples * 4);
+  conv_8_F (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgb8_rgbF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb8_rgbF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_8_F (src, dst, samples * 3);
+  conv_8_F (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_ga8_gaF (unsigned char *src, unsigned char *dst, long samples)
+conv_ga8_gaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_8_F (src, dst, samples * 2);
+  conv_8_F (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -281,23 +281,23 @@ conv_ga8_gaF (unsigned char *src, unsigned char *dst, long samples)
 #define conv_g8_gF          conv_8_F
 
 static long
-conv_rgba16_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba16_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_F (src, dst, samples * 4);
+  conv_16_F (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgb16_rgbF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb16_rgbF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_F (src, dst, samples * 3);
+  conv_16_F (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_ga16_gaF (unsigned char *src, unsigned char *dst, long samples)
+conv_ga16_gaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_F (src, dst, samples * 2);
+  conv_16_F (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -306,23 +306,23 @@ conv_ga16_gaF (unsigned char *src, unsigned char *dst, long samples)
 #define conv_g16_gF          conv_16_F
 
 static long
-conv_rgba16_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba16_rgba8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_8 (src, dst, samples * 4);
+  conv_16_8 (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgb16_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb16_rgb8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_8 (src, dst, samples * 3);
+  conv_16_8 (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_ga16_ga8 (unsigned char *src, unsigned char *dst, long samples)
+conv_ga16_ga8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_8 (src, dst, samples * 2);
+  conv_16_8 (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -331,23 +331,23 @@ conv_ga16_ga8 (unsigned char *src, unsigned char *dst, long samples)
 #define conv_g16_g8          conv_16_8
 
 static long
-conv_rgba8_rgba16 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba8_rgba16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_8_16 (src, dst, samples * 4);
+  conv_8_16 (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgb8_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb8_rgb16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_8_16 (src, dst, samples * 3);
+  conv_8_16 (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_ga8_ga16 (unsigned char *src, unsigned char *dst, long samples)
+conv_ga8_ga16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_8_16 (src, dst, samples * 2);
+  conv_8_16 (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -358,7 +358,7 @@ conv_ga8_ga16 (unsigned char *src, unsigned char *dst, long samples)
 /* alpha conversions */
 
 static long
-conv_gaF_gAF (unsigned char *src, unsigned char *dst, long samples)
+conv_gaF_gAF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -377,7 +377,7 @@ conv_gaF_gAF (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_gAF_gaF (unsigned char *src, unsigned char *dst, long samples)
+conv_gAF_gaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -398,7 +398,7 @@ conv_gAF_gaF (unsigned char *src, unsigned char *dst, long samples)
 /* alpha stripping and adding */
 
 static long
-conv_rgbaF_rgbF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgbF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -420,7 +420,7 @@ conv_rgbaF_rgbF (unsigned char *src, unsigned char *dst, long samples)
 
 
 static long
-conv_gF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_gF_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -442,7 +442,7 @@ conv_gF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
 #define conv_gF_rgbAF conv_gF_rgbaF
 
 static long
-conv_rgbF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbF_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -464,7 +464,7 @@ conv_rgbF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_gaF_gF (unsigned char *src, unsigned char *dst, long samples)
+conv_gaF_gF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -479,7 +479,7 @@ conv_gaF_gF (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_gF_gaF (unsigned char *src, unsigned char *dst, long samples)
+conv_gF_gaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -501,7 +501,7 @@ conv_gF_gaF (unsigned char *src, unsigned char *dst, long samples)
 /* colorchannel dropping and adding */
 
 static long
-conv_gF_rgbF (unsigned char *src, unsigned char *dst, long samples)
+conv_gF_rgbF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -520,7 +520,7 @@ conv_gF_rgbF (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_gaF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_gaF_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -546,7 +546,7 @@ conv_gaF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
 /* other conversions coded for some optimisation reason or sumthin */
 
 static long
-conv_rgbaF_rgbA8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgbA8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -569,7 +569,7 @@ conv_rgbaF_rgbA8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgbaF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgb8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -589,7 +589,7 @@ conv_rgbaF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgbaF_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgb16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -609,7 +609,7 @@ conv_rgbaF_rgb16 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgba8_rgbA8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba8_rgbA8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -638,7 +638,7 @@ conv_rgba8_rgbA8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgbA8_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbA8_rgba8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -668,7 +668,7 @@ conv_rgbA8_rgba8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgb8_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb8_rgba8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -688,7 +688,7 @@ conv_rgb8_rgba8 (unsigned char *src, unsigned char *dst, long samples)
 #define conv_rgb8_rgbA8    conv_rgb8_rgba8
 
 static long
-conv_rgba8_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba8_rgb8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
index 3e79a6fe72b65eb426e7c22a27b29e7a71385f2f..8149002f08eadfdfecba1b3e80284fe9e0679a00 100644 (file)
@@ -150,7 +150,7 @@ gggl_float_to_index16 (float f)
 
 
 static long
-conv_F_8 (unsigned char *src, unsigned char *dst, long samples)
+conv_F_8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -167,7 +167,7 @@ conv_F_8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_F_16 (unsigned char *src, unsigned char *dst, long samples)
+conv_F_16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -184,7 +184,7 @@ conv_F_16 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_8_F (unsigned char *src, unsigned char *dst, long samples)
+conv_8_F (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -200,7 +200,7 @@ conv_8_F (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_16_F (unsigned char *src, unsigned char *dst, long samples)
+conv_16_F (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -217,25 +217,25 @@ conv_16_F (unsigned char *src, unsigned char *dst, long samples)
 
 /*********/
 static long
-conv_rgbaF_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgba8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_8 (src, dst, samples * 4);
+  conv_F_8 (conversion, src, dst, samples * 4);
   return samples;
 }
 
 #define conv_rgbaF_rgbP8    conv_rgbaF_rgba8
 
 static long
-conv_rgbF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbF_rgb8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_8 (src, dst, samples * 3);
+  conv_F_8 (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_gaF_ga8 (unsigned char *src, unsigned char *dst, long samples)
+conv_gaF_ga8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_8 (src, dst, samples * 2);
+  conv_F_8 (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -244,23 +244,23 @@ conv_gaF_ga8 (unsigned char *src, unsigned char *dst, long samples)
 #define conv_gAF_gA8        conv_gaF_ga8
 
 static long
-conv_rgbaF_rgba16 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgba16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_16 (src, dst, samples * 4);
+  conv_F_16 (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgbF_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbF_rgb16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_16 (src, dst, samples * 3);
+  conv_F_16 (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_gaF_ga16 (unsigned char *src, unsigned char *dst, long samples)
+conv_gaF_ga16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_16 (src, dst, samples * 2);
+  conv_F_16 (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -269,23 +269,23 @@ conv_gaF_ga16 (unsigned char *src, unsigned char *dst, long samples)
 #define conv_gAF_gA16        conv_gaF_ga16
 
 static long
-conv_rgba8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba8_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_8_F (src, dst, samples * 4);
+  conv_8_F (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgb8_rgbF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb8_rgbF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_8_F (src, dst, samples * 3);
+  conv_8_F (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_ga8_gaF (unsigned char *src, unsigned char *dst, long samples)
+conv_ga8_gaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_8_F (src, dst, samples * 2);
+  conv_8_F (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -294,23 +294,23 @@ conv_ga8_gaF (unsigned char *src, unsigned char *dst, long samples)
 #define conv_g8_gF          conv_8_F
 
 static long
-conv_rgba16_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba16_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_F (src, dst, samples * 4);
+  conv_16_F (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgb16_rgbF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb16_rgbF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_F (src, dst, samples * 3);
+  conv_16_F (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_ga16_gaF (unsigned char *src, unsigned char *dst, long samples)
+conv_ga16_gaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_F (src, dst, samples * 2);
+  conv_16_F (conversion, src, dst, samples * 2);
   return samples;
 }
 
index 071167d208b7cc61490d95a125b0140b5ee0e74f..ebb4b851a50d2cc73c9df43eff0485e3a974991b 100644 (file)
@@ -149,7 +149,7 @@ gggl_float_to_index16 (float f)
 }
 
 static long
-conv_F_8 (unsigned char *src, unsigned char *dst, long samples)
+conv_F_8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -166,7 +166,7 @@ conv_F_8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_F_16 (unsigned char *src, unsigned char *dst, long samples)
+conv_F_16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -183,7 +183,7 @@ conv_F_16 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_8_F (unsigned char *src, unsigned char *dst, long samples)
+conv_8_F (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -199,7 +199,7 @@ conv_8_F (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgb8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb8_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -223,7 +223,7 @@ conv_rgb8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_16_F (unsigned char *src, unsigned char *dst, long samples)
+conv_16_F (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -239,7 +239,7 @@ conv_16_F (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgbaF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgb8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -268,23 +268,23 @@ conv_rgbaF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
 
 /*********/
 static long
-conv_rgbaF_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgba8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_8 (src, dst, samples * 4);
+  conv_F_8 (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgbF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbF_rgb8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_8 (src, dst, samples * 3);
+  conv_F_8 (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_gaF_ga8 (unsigned char *src, unsigned char *dst, long samples)
+conv_gaF_ga8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_8 (src, dst, samples * 2);
+  conv_F_8 (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -293,23 +293,23 @@ conv_gaF_ga8 (unsigned char *src, unsigned char *dst, long samples)
 #define conv_gAF_gA8        conv_gaF_ga8
 
 static long
-conv_rgbaF_rgba16 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgba16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_16 (src, dst, samples * 4);
+  conv_F_16 (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgbF_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbF_rgb16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_16 (src, dst, samples * 3);
+  conv_F_16 (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_gaF_ga16 (unsigned char *src, unsigned char *dst, long samples)
+conv_gaF_ga16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_16 (src, dst, samples * 2);
+  conv_F_16 (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -318,22 +318,22 @@ conv_gaF_ga16 (unsigned char *src, unsigned char *dst, long samples)
 #define conv_gAF_gA16        conv_gaF_ga16
 
 static long
-conv_rgba8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba8_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  return conv_8_F (src, dst, samples * 4) / 4;
+  return conv_8_F (conversion, src, dst, samples * 4) / 4;
 }
 
 
 static long
-conv_rgb8_rgbF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb8_rgbF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  return conv_8_F (src, dst, samples * 3) / 3;
+  return conv_8_F (conversion, src, dst, samples * 3) / 3;
 }
 
 static long
-conv_ga8_gaF (unsigned char *src, unsigned char *dst, long samples)
+conv_ga8_gaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  return conv_8_F (src, dst, samples * 2) / 2;
+  return conv_8_F (conversion, src, dst, samples * 2) / 2;
 }
 
 #define conv_rgbA8_rgbAF    conv_rgba8_rgbaF
@@ -341,23 +341,23 @@ conv_ga8_gaF (unsigned char *src, unsigned char *dst, long samples)
 #define conv_g8_gF          conv_8_F
 
 static long
-conv_rgba16_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba16_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_F (src, dst, samples * 4);
+  conv_16_F (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgb16_rgbF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb16_rgbF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_F (src, dst, samples * 3);
+  conv_16_F (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_ga16_gaF (unsigned char *src, unsigned char *dst, long samples)
+conv_ga16_gaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_F (src, dst, samples * 2);
+  conv_16_F (conversion, src, dst, samples * 2);
   return samples;
 }
 
index b01659ffbb9fe73f397534e304fa0fb8f8481bee..cf0f66484f9a774dd7e9d9a63ac807ff3a1d76a8 100644 (file)
@@ -50,7 +50,7 @@
  */
 
 static long
-conv_F_8 (unsigned char *src, unsigned char *dst, long samples)
+conv_F_8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -70,7 +70,7 @@ conv_F_8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_F_16 (unsigned char *src, unsigned char *dst, long samples)
+conv_F_16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -96,7 +96,7 @@ conv_F_16 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_8_F (unsigned char *src, unsigned char *dst, long samples)
+conv_8_F (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -110,7 +110,7 @@ conv_8_F (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_16_F (unsigned char *src, unsigned char *dst, long samples)
+conv_16_F (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -124,7 +124,7 @@ conv_16_F (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgbaF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgb8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -150,7 +150,7 @@ conv_rgbaF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_F_D (unsigned char *src, unsigned char *dst, long samples)
+conv_F_D (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -164,7 +164,7 @@ conv_F_D (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_D_F (unsigned char *src, unsigned char *dst, long samples)
+conv_D_F (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -178,7 +178,7 @@ conv_D_F (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_16_8 (unsigned char *src, unsigned char *dst, long samples)
+conv_16_8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -193,7 +193,7 @@ conv_16_8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_8_16 (unsigned char *src, unsigned char *dst, long samples)
+conv_8_16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -209,23 +209,23 @@ conv_8_16 (unsigned char *src, unsigned char *dst, long samples)
 
 /*********/
 static long
-conv_rgbaF_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgba8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_8 (src, dst, samples * 4);
+  conv_F_8 (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgbF_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbF_rgb8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_8 (src, dst, samples * 3);
+  conv_F_8 (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_gaF_ga8 (unsigned char *src, unsigned char *dst, long samples)
+conv_gaF_ga8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_8 (src, dst, samples * 2);
+  conv_F_8 (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -234,23 +234,23 @@ conv_gaF_ga8 (unsigned char *src, unsigned char *dst, long samples)
 #define conv_gAF_gA8        conv_gaF_ga8
 
 static long
-conv_rgbaF_rgba16 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgba16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_16 (src, dst, samples * 4);
+  conv_F_16 (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgbF_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbF_rgb16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_16 (src, dst, samples * 3);
+  conv_F_16 (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_gaF_ga16 (unsigned char *src, unsigned char *dst, long samples)
+conv_gaF_ga16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_16 (src, dst, samples * 2);
+  conv_F_16 (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -259,22 +259,22 @@ conv_gaF_ga16 (unsigned char *src, unsigned char *dst, long samples)
 #define conv_gAF_gA16        conv_gaF_ga16
 
 static long
-conv_rgba8_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba8_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  return conv_8_F (src, dst, samples * 4) / 4;
+  return conv_8_F (conversion, src, dst, samples * 4) / 4;
 }
 
 
 static long
-conv_rgb8_rgbF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb8_rgbF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  return conv_8_F (src, dst, samples * 3) / 3;
+  return conv_8_F (conversion, src, dst, samples * 3) / 3;
 }
 
 static long
-conv_ga8_gaF (unsigned char *src, unsigned char *dst, long samples)
+conv_ga8_gaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  return conv_8_F (src, dst, samples * 2) / 2;
+  return conv_8_F (conversion, src, dst, samples * 2) / 2;
 }
 
 #define conv_rgbA8_rgbAF    conv_rgba8_rgbaF
@@ -282,37 +282,37 @@ conv_ga8_gaF (unsigned char *src, unsigned char *dst, long samples)
 #define conv_g8_gF          conv_8_F
 
 static long
-conv_rgbaF_rgbaD (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgbaD (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_F_D (src, dst, samples * 4);
+  conv_F_D (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgbaD_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaD_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_D_F (src, dst, samples * 4);
+  conv_D_F (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgba16_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba16_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_F (src, dst, samples * 4);
+  conv_16_F (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgb16_rgbF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb16_rgbF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_F (src, dst, samples * 3);
+  conv_16_F (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_ga16_gaF (unsigned char *src, unsigned char *dst, long samples)
+conv_ga16_gaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_F (src, dst, samples * 2);
+  conv_16_F (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -321,23 +321,23 @@ conv_ga16_gaF (unsigned char *src, unsigned char *dst, long samples)
 #define conv_g16_gF          conv_16_F
 
 static long
-conv_rgba16_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba16_rgba8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_8 (src, dst, samples * 4);
+  conv_16_8 (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgb16_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb16_rgb8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_8 (src, dst, samples * 3);
+  conv_16_8 (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_ga16_ga8 (unsigned char *src, unsigned char *dst, long samples)
+conv_ga16_ga8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_16_8 (src, dst, samples * 2);
+  conv_16_8 (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -346,23 +346,23 @@ conv_ga16_ga8 (unsigned char *src, unsigned char *dst, long samples)
 #define conv_g16_g8          conv_16_8
 
 static long
-conv_rgba8_rgba16 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba8_rgba16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_8_16 (src, dst, samples * 4);
+  conv_8_16 (conversion, src, dst, samples * 4);
   return samples;
 }
 
 static long
-conv_rgb8_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb8_rgb16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_8_16 (src, dst, samples * 3);
+  conv_8_16 (conversion, src, dst, samples * 3);
   return samples;
 }
 
 static long
-conv_ga8_ga16 (unsigned char *src, unsigned char *dst, long samples)
+conv_ga8_ga16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
-  conv_8_16 (src, dst, samples * 2);
+  conv_8_16 (conversion, src, dst, samples * 2);
   return samples;
 }
 
@@ -373,7 +373,7 @@ conv_ga8_ga16 (unsigned char *src, unsigned char *dst, long samples)
 /* alpha conversions */
 
 static long
-conv_gaF_gAF (unsigned char *src, unsigned char *dst, long samples)
+conv_gaF_gAF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -392,7 +392,7 @@ conv_gaF_gAF (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_gAF_gaF (unsigned char *src, unsigned char *dst, long samples)
+conv_gAF_gaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -413,7 +413,7 @@ conv_gAF_gaF (unsigned char *src, unsigned char *dst, long samples)
 /* alpha stripping and adding */
 
 static long
-conv_rgbaF_rgbF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgbF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -434,7 +434,7 @@ conv_rgbaF_rgbF (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgbF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbF_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -459,7 +459,7 @@ conv_rgbF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
 
 
 static long
-conv_gaF_gF (unsigned char *src, unsigned char *dst, long samples)
+conv_gaF_gF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -474,7 +474,7 @@ conv_gaF_gF (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_gF_gaF (unsigned char *src, unsigned char *dst, long samples)
+conv_gF_gaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -496,7 +496,7 @@ conv_gF_gaF (unsigned char *src, unsigned char *dst, long samples)
 /* colorchannel dropping and adding */
 
 static long
-conv_gF_rgbF (unsigned char *src, unsigned char *dst, long samples)
+conv_gF_rgbF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -515,7 +515,7 @@ conv_gF_rgbF (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_gaF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_gaF_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -542,7 +542,7 @@ conv_gaF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
 
 
 static long
-conv_rgbaF_rgbA8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgbA8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -565,7 +565,7 @@ conv_rgbaF_rgbA8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgbaF_rgb16 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbaF_rgb16 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -585,7 +585,7 @@ conv_rgbaF_rgb16 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgbA16_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbA16_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -608,7 +608,7 @@ conv_rgbA16_rgbaF (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_gF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_gF_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -713,7 +713,7 @@ conv_gF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
    }
  */
 static long
-conv_rgba8_rgbA8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba8_rgbA8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -742,7 +742,7 @@ conv_rgba8_rgbA8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgbA8_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbA8_rgba8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -772,7 +772,7 @@ conv_rgbA8_rgba8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgb8_rgba8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgb8_rgba8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples-1;
   while (n--)
@@ -791,7 +791,7 @@ conv_rgb8_rgba8 (unsigned char *src, unsigned char *dst, long samples)
 #define conv_rgb8_rgbA8    conv_rgb8_rgba8
 
 static long
-conv_rgba8_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgba8_rgb8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -807,7 +807,7 @@ conv_rgba8_rgb8 (unsigned char *src, unsigned char *dst, long samples)
 }
 
 static long
-conv_rgbA8_rgb8 (unsigned char *src, unsigned char *dst, long samples)
+conv_rgbA8_rgb8 (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   long n = samples;
 
@@ -863,7 +863,7 @@ conv_rgbA8_rgb8 (unsigned char *src, unsigned char *dst, long samples)
 
 
   static long
-conv_yuvaF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
+conv_yuvaF_rgbaF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   float *src_f = (float *) src;
   float *dst_f = (float *) dst;
@@ -895,7 +895,7 @@ conv_yuvaF_rgbaF (unsigned char *src, unsigned char *dst, long samples)
 
 
 static long
-conv_yuvF_rgbF (unsigned char *src, unsigned char *dst, long samples)
+conv_yuvF_rgbF (const Babl *conversion,unsigned char *src, unsigned char *dst, long samples)
 {
   float *src_f = (float *) src;
   float *dst_f = (float *) dst;
index 55bd95c5ebf0e6060cf9100b1569325292d6ab0a..92e3d6e2ce7d6f0842d512b92b11cb6b16201eab 100644 (file)
@@ -52,7 +52,7 @@ tables_init (void)
 }
 
 static INLINE long
-u8_linear_to_float_linear (unsigned char *src,
+u8_linear_to_float_linear (const Babl *conversion,unsigned char *src,
                            unsigned char *dst,
                            long           samples)
 {
@@ -67,7 +67,7 @@ u8_linear_to_float_linear (unsigned char *src,
 
 
 static INLINE long
-u8_linear_to_float_linear_premul (unsigned char *src,
+u8_linear_to_float_linear_premul (const Babl *conversion,unsigned char *src,
                                   unsigned char *dst,
                                   long           samples)
 {
@@ -88,7 +88,7 @@ u8_linear_to_float_linear_premul (unsigned char *src,
 }
 
 static INLINE long
-u8_gamma_2_2_to_float_linear (unsigned char *src,
+u8_gamma_2_2_to_float_linear (const Babl *conversion,unsigned char *src,
                               unsigned char *dst,
                               long           samples)
 {
@@ -102,28 +102,28 @@ u8_gamma_2_2_to_float_linear (unsigned char *src,
 }
 
 static INLINE long
-conv_rgba8_linear_rgbaF_linear (unsigned char *src,
+conv_rgba8_linear_rgbaF_linear (const Babl *conversion,unsigned char *src,
                                 unsigned char *dst,
                                 long           samples)
 {
-  u8_linear_to_float_linear (src, dst, samples * 4);
+  u8_linear_to_float_linear (conversion, src, dst, samples * 4);
 
   return samples;
 }
 
 static INLINE long
-conv_rgba8_linear_ragabaaF_linear (unsigned char *src,
+conv_rgba8_linear_ragabaaF_linear (const Babl *conversion,unsigned char *src,
                                 unsigned char *dst,
                                 long           samples)
 {
-  u8_linear_to_float_linear_premul (src, dst, samples);
+  u8_linear_to_float_linear_premul (conversion, src, dst, samples);
 
   return samples;
 }
 
 
 static INLINE long
-conv_rgba8_gamma_2_2_rgbaF_linear (unsigned char *src,
+conv_rgba8_gamma_2_2_rgbaF_linear (const Babl *conversion,unsigned char *src,
                                    unsigned char *dst,
                                    long           samples)
 {
@@ -142,27 +142,27 @@ conv_rgba8_gamma_2_2_rgbaF_linear (unsigned char *src,
 }
 
 static INLINE long
-conv_rgb8_linear_rgbF_linear (unsigned char *src,
+conv_rgb8_linear_rgbF_linear (const Babl *conversion,unsigned char *src,
                               unsigned char *dst,
                               long           samples)
 {
-  u8_linear_to_float_linear (src, dst, samples * 3);
+  u8_linear_to_float_linear (conversion, src, dst, samples * 3);
 
   return samples;
 }
 
 static INLINE long
-conv_rgb8_gamma_2_2_rgbF_linear (unsigned char *src,
+conv_rgb8_gamma_2_2_rgbF_linear (const Babl *conversion,unsigned char *src,
                                  unsigned char *dst,
                                  long           samples)
 {
-  u8_gamma_2_2_to_float_linear (src, dst, samples * 3);
+  u8_gamma_2_2_to_float_linear (conversion, src, dst, samples * 3);
 
   return samples;
 }
 
 static INLINE long
-conv_rgb8_linear_rgbaF_linear (unsigned char *src,
+conv_rgb8_linear_rgbaF_linear (const Babl *conversion,unsigned char *src,
                                unsigned char *dst,
                                long           samples)
 {
@@ -183,7 +183,7 @@ conv_rgb8_linear_rgbaF_linear (unsigned char *src,
 #define conv_rgb8_linear_ragabaaF_linear conv_rgb8_linear_rgbaF_linear
 
 static INLINE long
-conv_rgb8_gamma_2_2_rgbaF_linear (unsigned char *src,
+conv_rgb8_gamma_2_2_rgbaF_linear (const Babl *conversion,unsigned char *src,
                                   unsigned char *dst,
                                   long           samples)
 {
@@ -202,17 +202,17 @@ conv_rgb8_gamma_2_2_rgbaF_linear (unsigned char *src,
 }
 
 static INLINE long
-conv_ga8_linear_gaF_linear (unsigned char *src,
+conv_ga8_linear_gaF_linear (const Babl *conversion,unsigned char *src,
                             unsigned char *dst,
                             long           samples)
 {
-  u8_linear_to_float_linear (src, dst, samples * 2);
+  u8_linear_to_float_linear (conversion, src, dst, samples * 2);
 
   return samples;
 }
 
 static INLINE long
-conv_ga8_gamma_2_2_gaF_linear (unsigned char *src,
+conv_ga8_gamma_2_2_gaF_linear (const Babl *conversion,unsigned char *src,
                                unsigned char *dst,
                                long           samples)
 {
@@ -229,7 +229,7 @@ conv_ga8_gamma_2_2_gaF_linear (unsigned char *src,
 }
 
 static INLINE long
-conv_ga8_gamma_2_2_rgba8_gamma_2_2 (unsigned char *src,
+conv_ga8_gamma_2_2_rgba8_gamma_2_2 (const Babl *conversion,unsigned char *src,
                                     unsigned char *dst,
                                     long           samples)
 {
@@ -247,7 +247,7 @@ conv_ga8_gamma_2_2_rgba8_gamma_2_2 (unsigned char *src,
 }
 
 static INLINE long
-conv_ga8_linear_rgbaF_linear (unsigned char *src,
+conv_ga8_linear_rgbaF_linear (const Babl *conversion,unsigned char *src,
                               unsigned char *dst,
                               long           samples)
 {
@@ -268,7 +268,7 @@ conv_ga8_linear_rgbaF_linear (unsigned char *src,
 }
 
 static INLINE long
-conv_ga8_gamma_2_2_rgbaF_linear (unsigned char *src,
+conv_ga8_gamma_2_2_rgbaF_linear (const Babl *conversion,unsigned char *src,
                                  unsigned char *dst,
                                  long           samples)
 {
@@ -289,27 +289,27 @@ conv_ga8_gamma_2_2_rgbaF_linear (unsigned char *src,
 }
 
 static INLINE long
-conv_g8_linear_gF_linear (unsigned char *src,
+conv_g8_linear_gF_linear (const Babl *conversion,unsigned char *src,
                           unsigned char *dst,
                           long           samples)
 {
-  u8_linear_to_float_linear (src, dst, samples);
+  u8_linear_to_float_linear (conversion, src, dst, samples);
 
   return samples;
 }
 
 static INLINE long
-conv_g8_gamma_2_2_gF_linear (unsigned char *src,
+conv_g8_gamma_2_2_gF_linear (const Babl *conversion,unsigned char *src,
                              unsigned char *dst,
                              long           samples)
 {
-  u8_gamma_2_2_to_float_linear (src, dst, samples);
+  u8_gamma_2_2_to_float_linear (conversion, src, dst, samples);
 
   return samples;
 }
 
 static INLINE long
-conv_g8_linear_rgbaF_linear (unsigned char *src,
+conv_g8_linear_rgbaF_linear (const Babl *conversion,unsigned char *src,
                              unsigned char *dst,
                              long           samples)
 {
@@ -329,7 +329,7 @@ conv_g8_linear_rgbaF_linear (unsigned char *src,
   return samples;
 }
 static INLINE long
-conv_g8_gamma_2_2_rgbaF_linear (unsigned char *src,
+conv_g8_gamma_2_2_rgbaF_linear (const Babl *conversion,unsigned char *src,
                                 unsigned char *dst,
                                 long           samples)
 {
@@ -350,7 +350,7 @@ conv_g8_gamma_2_2_rgbaF_linear (unsigned char *src,
 }
 
 static INLINE long
-conv_rgbaF_linear_rgb8_linear (unsigned char *src, 
+conv_rgbaF_linear_rgb8_linear (const Babl *conversion,unsigned char *src, 
                                unsigned char *dst, 
                                long           samples)
 {
@@ -376,7 +376,7 @@ conv_rgbaF_linear_rgb8_linear (unsigned char *src,
 }
 
 static INLINE long
-conv_rgbaF_linear_rgba8_linear (unsigned char *src, 
+conv_rgbaF_linear_rgba8_linear (const Babl *conversion,unsigned char *src, 
                                 unsigned char *dst, 
                                 long           samples)
 {
index a6fef28f3853f8b200ba72e8a6974da68c83c684..b39406424088469a13c5b3e38df30fb8857704ce 100644 (file)
@@ -37,7 +37,7 @@ static const float RGB_LUMINANCE_GREEN_FLOAT = RGB_LUMINANCE_GREEN;
 static const float RGB_LUMINANCE_BLUE_FLOAT = RGB_LUMINANCE_BLUE;
 
 static long
-conv_rgbaF_linear_y8_linear (unsigned char *src,
+conv_rgbaF_linear_y8_linear (const Babl *conversion,unsigned char *src,
                              unsigned char *dst,
                              long           samples)
 {
@@ -65,7 +65,7 @@ conv_rgbaF_linear_y8_linear (unsigned char *src,
 }
 
 static long
-conv_rgbaF_linear_yF_linear (unsigned char *src,
+conv_rgbaF_linear_yF_linear (const Babl *conversion,unsigned char *src,
                              unsigned char *dst,
                              long           samples)
 {
@@ -88,7 +88,7 @@ conv_rgbaF_linear_yF_linear (unsigned char *src,
 }
 
 static long
-conv_rgbaF_linear_yaF_linear (unsigned char *src,
+conv_rgbaF_linear_yaF_linear (const Babl *conversion,unsigned char *src,
                               unsigned char *dst,
                               long           samples)
 {
index f92b0d21f8f2caede7968d062e09f2c33643a187..339536b4f2ce45bafa89a6ffd008910bb8db7f6a 100644 (file)
 #include "base/util.h"
 
 
-static long  rgba_to_cmyk (char *src,
+static long  rgba_to_cmyk (const Babl *conversion,char *src,
                            char *dst,
                            long  n);
 
-static long  cmyk_to_rgba (char *src,
+static long  cmyk_to_rgba (const Babl *conversion,char *src,
                            char *dst,
                            long  n);
 
-static long  rgba_to_cmy  (char *src,
+static long  rgba_to_cmy  (const Babl *conversion,char *src,
                            char *dst,
                            long  n);
 
-static long  cmy_to_rgba  (char *src,
+static long  cmy_to_rgba  (const Babl *conversion,char *src,
                            char *dst,
                            long  n);
 
@@ -127,7 +127,7 @@ init (void)
 
 
 static long
-rgba_to_cmyk (char *src,
+rgba_to_cmyk (const Babl *conversion,char *src,
               char *dst,
               long  n)
 {
@@ -177,7 +177,7 @@ rgba_to_cmyk (char *src,
 }
 
 static long
-cmyk_to_rgba (char *src,
+cmyk_to_rgba (const Babl *conversion,char *src,
               char *dst,
               long  n)
 {
@@ -218,7 +218,7 @@ cmyk_to_rgba (char *src,
 }
 
 static long
-rgba_to_cmy (char *src,
+rgba_to_cmy (const Babl *conversion,char *src,
              char *dst,
              long  n)
 {
@@ -245,7 +245,7 @@ rgba_to_cmy (char *src,
 }
 
 static long
-cmy_to_rgba (char *src,
+cmy_to_rgba (const Babl *conversion,char *src,
               char *dst,
               long  n)
 {
index 1430ab1404b3274c0f922c0f4e159a02ca5c63e3..cd34f1cab58c27d8dad54ee5273badc214c921f4 100644 (file)
@@ -6,7 +6,7 @@ int init (void);
 
 
 static inline long
-float_to_u8_x1 (unsigned char *src_char, unsigned char *dst, long samples)
+float_to_u8_x1 (const Babl *conversion,unsigned char *src_char, unsigned char *dst, long samples)
 {
   float *src = (float *)src_char;
   long n = samples;
@@ -21,27 +21,27 @@ float_to_u8_x1 (unsigned char *src_char, unsigned char *dst, long samples)
 }
 
 static inline long
-float_to_u8_x4 (unsigned char *src_char, unsigned char *dst, long samples)
+float_to_u8_x4 (const Babl *conversion,unsigned char *src_char, unsigned char *dst, long samples)
 {
-  return float_to_u8_x1 (src_char, dst, samples * 4);
+  return float_to_u8_x1 (conversion, src_char, dst, samples * 4);
 }
 
 static inline long
-float_to_u8_x3 (unsigned char *src_char, unsigned char *dst, long samples)
+float_to_u8_x3 (const Babl *conversion,unsigned char *src_char, unsigned char *dst, long samples)
 {
-  return float_to_u8_x1 (src_char, dst, samples * 3);
+  return float_to_u8_x1 (conversion, src_char, dst, samples * 3);
 }
 
 static inline long
-float_to_u8_x2 (unsigned char *src_char, unsigned char *dst, long samples)
+float_to_u8_x2 (const Babl *conversion,unsigned char *src_char, unsigned char *dst, long samples)
 {
-  return float_to_u8_x1 (src_char, dst, samples * 2);
+  return float_to_u8_x1 (conversion, src_char, dst, samples * 2);
 }
 
 
 
 static inline long
-float_pre_to_u8_pre (unsigned char *src_char, unsigned char *dst, long samples)
+float_pre_to_u8_pre (const Babl *conversion,unsigned char *src_char, unsigned char *dst, long samples)
 {
   float *src = (float *)src_char;
   long n = samples;
@@ -72,7 +72,7 @@ float_pre_to_u8_pre (unsigned char *src_char, unsigned char *dst, long samples)
 }
 
 static inline long
-float_to_u16_x1 (unsigned char *src_char, unsigned char *dst_char, long samples)
+float_to_u16_x1 (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
   float *src    = (float *)src_char;
   uint16_t *dst = (uint16_t *)dst_char;
@@ -87,23 +87,23 @@ float_to_u16_x1 (unsigned char *src_char, unsigned char *dst_char, long samples)
   return samples;
 }
 static inline long
-float_to_u16_x2 (unsigned char *src_char, unsigned char *dst_char, long samples)
+float_to_u16_x2 (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
-  return float_to_u16_x1 (src_char, dst_char, samples * 2);
+  return float_to_u16_x1 (conversion, src_char, dst_char, samples * 2);
 }
 static inline long
-float_to_u16_x3 (unsigned char *src_char, unsigned char *dst_char, long samples)
+float_to_u16_x3 (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
-  return float_to_u16_x1 (src_char, dst_char, samples * 3);
+  return float_to_u16_x1 (conversion, src_char, dst_char, samples * 3);
 }
 static inline long
-float_to_u16_x4 (unsigned char *src_char, unsigned char *dst_char, long samples)
+float_to_u16_x4 (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
-  return float_to_u16_x1 (src_char, dst_char, samples * 4);
+  return float_to_u16_x1 (conversion, src_char, dst_char, samples * 4);
 }
 
 static inline long
-float_pre_to_u16_pre (unsigned char *src_char, unsigned char *dst_char, long samples)
+float_pre_to_u16_pre (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
   float *src = (float *)src_char;
   uint16_t *dst = (uint16_t *)dst_char;
@@ -134,7 +134,7 @@ float_pre_to_u16_pre (unsigned char *src_char, unsigned char *dst_char, long sam
 }
 
 static inline long
-float_pre_to_u32_pre (unsigned char *src_char, unsigned char *dst_char, long samples)
+float_pre_to_u32_pre (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
   float *src = (float *)src_char;
   uint32_t *dst = (uint32_t *)dst_char;
@@ -166,7 +166,7 @@ float_pre_to_u32_pre (unsigned char *src_char, unsigned char *dst_char, long sam
 
 
 static inline long
-float_to_u32_x1 (unsigned char *src_char, unsigned char *dst_char, long samples)
+float_to_u32_x1 (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
   float *src    = (float *)src_char;
   uint32_t *dst = (uint32_t *)dst_char;
@@ -183,24 +183,24 @@ float_to_u32_x1 (unsigned char *src_char, unsigned char *dst_char, long samples)
   return samples;
 }
 static inline long
-float_to_u32_x2 (unsigned char *src_char, unsigned char *dst_char, long samples)
+float_to_u32_x2 (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
-  return float_to_u32_x1 (src_char, dst_char, samples * 2);
+  return float_to_u32_x1 (conversion, src_char, dst_char, samples * 2);
 }
 static inline long
-float_to_u32_x3 (unsigned char *src_char, unsigned char *dst_char, long samples)
+float_to_u32_x3 (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
-  return float_to_u32_x1 (src_char, dst_char, samples * 3);
+  return float_to_u32_x1 (conversion, src_char, dst_char, samples * 3);
 }
 static inline long
-float_to_u32_x4 (unsigned char *src_char, unsigned char *dst_char, long samples)
+float_to_u32_x4 (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
-  return float_to_u32_x1 (src_char, dst_char, samples * 4);
+  return float_to_u32_x1 (conversion, src_char, dst_char, samples * 4);
 }
 
 
 static inline long
-u32_to_float (unsigned char *src_char, unsigned char *dst_char, long samples)
+u32_to_float (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
   uint32_t *src = (uint32_t *)src_char;
   float *dst    = (float *)dst_char;
@@ -215,30 +215,30 @@ u32_to_float (unsigned char *src_char, unsigned char *dst_char, long samples)
 }
 
 static inline long
-u32_to_float_x4 (unsigned char *src_char, unsigned char *dst_char, long samples)
+u32_to_float_x4 (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
-  u32_to_float (src_char, dst_char, samples * 4);
+  u32_to_float (conversion, src_char, dst_char, samples * 4);
   return samples;
 }
 
 static inline long
-u32_to_float_x3 (unsigned char *src_char, unsigned char *dst_char, long samples)
+u32_to_float_x3 (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
-  u32_to_float (src_char, dst_char, samples * 3);
+  u32_to_float (conversion, src_char, dst_char, samples * 3);
   return samples;
 }
 
 
 static inline long
-u32_to_float_x2 (unsigned char *src_char, unsigned char *dst_char, long samples)
+u32_to_float_x2 (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
-  u32_to_float (src_char, dst_char, samples * 2);
+  u32_to_float (conversion, src_char, dst_char, samples * 2);
   return samples;
 }
 
 
 static inline long
-u16_to_float (unsigned char *src_char, unsigned char *dst_char, long samples)
+u16_to_float (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
   uint16_t *src = (uint16_t *)src_char;
   float *dst    = (float *)dst_char;
@@ -253,29 +253,29 @@ u16_to_float (unsigned char *src_char, unsigned char *dst_char, long samples)
 }
 
 static inline long
-u16_to_float_x4 (unsigned char *src_char, unsigned char *dst_char, long samples)
+u16_to_float_x4 (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
-  u16_to_float (src_char, dst_char, samples * 4);
+  u16_to_float (conversion, src_char, dst_char, samples * 4);
   return samples;
 }
 
 static inline long
-u16_to_float_x3 (unsigned char *src_char, unsigned char *dst_char, long samples)
+u16_to_float_x3 (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
-  u16_to_float (src_char, dst_char, samples * 3);
+  u16_to_float (conversion, src_char, dst_char, samples * 3);
   return samples;
 }
 
 
 static inline long
-u16_to_float_x2 (unsigned char *src_char, unsigned char *dst_char, long samples)
+u16_to_float_x2 (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
-  u16_to_float (src_char, dst_char, samples * 2);
+  u16_to_float (conversion, src_char, dst_char, samples * 2);
   return samples;
 }
 
 static inline long
-yau16_rgbaf (unsigned char *src_char, unsigned char *dst_char, long samples)
+yau16_rgbaf (const Babl *conversion,unsigned char *src_char, unsigned char *dst_char, long samples)
 {
   uint16_t *src = (uint16_t *)src_char;
   float *dst    = (float *)dst_char;
index e20c214d9374b7aad28931b53247b693f3a56044..1a48adbbaf4c90ea803302847aaae6529e6c95f2 100644 (file)
@@ -30,7 +30,7 @@
 #include "extensions/util.h"
 
 static inline long
-conv_yHalf_yF (const uint16_t *src, float *dst, long samples)
+conv_yHalf_yF (const Babl *conversion,const uint16_t *src, float *dst, long samples)
 {
   const uint64_t *s_vec;
   __v4sf         *d_vec;
@@ -63,25 +63,25 @@ conv_yHalf_yF (const uint16_t *src, float *dst, long samples)
 }
 
 static long
-conv_yaHalf_yaF (const uint16_t *src, float *dst, long samples)
+conv_yaHalf_yaF (const Babl *conversion,const uint16_t *src, float *dst, long samples)
 {
-  return conv_yHalf_yF (src, dst, samples * 2) / 2;
+  return conv_yHalf_yF (conversion, src, dst, samples * 2) / 2;
 }
 
 static long
-conv_rgbHalf_rgbF (const uint16_t *src, float *dst, long samples)
+conv_rgbHalf_rgbF (const Babl *conversion,const uint16_t *src, float *dst, long samples)
 {
-  return conv_yHalf_yF (src, dst, samples * 3) / 3;
+  return conv_yHalf_yF (conversion, src, dst, samples * 3) / 3;
 }
 
 static long
-conv_rgbaHalf_rgbaF (const uint16_t *src, float *dst, long samples)
+conv_rgbaHalf_rgbaF (const Babl *conversion,const uint16_t *src, float *dst, long samples)
 {
-  return conv_yHalf_yF (src, dst, samples * 4) / 4;
+  return conv_yHalf_yF (conversion, src, dst, samples * 4) / 4;
 }
 
 static inline long
-conv_yF_yHalf (const float *src, uint16_t *dst, long samples)
+conv_yF_yHalf (const Babl *conversion,const float *src, uint16_t *dst, long samples)
 {
   const __v4sf *s_vec;
   uint64_t     *d_vec;
@@ -114,21 +114,21 @@ conv_yF_yHalf (const float *src, uint16_t *dst, long samples)
 }
 
 static long
-conv_yaF_yaHalf (const float *src, uint16_t *dst, long samples)
+conv_yaF_yaHalf (const Babl *conversion,const float *src, uint16_t *dst, long samples)
 {
-  return conv_yF_yHalf (src, dst, samples * 2) / 2;
+  return conv_yF_yHalf (conversion, src, dst, samples * 2) / 2;
 }
 
 static long
-conv_rgbF_rgbHalf (const float *src, uint16_t *dst, long samples)
+conv_rgbF_rgbHalf (const Babl *conversion,const float *src, uint16_t *dst, long samples)
 {
-  return conv_yF_yHalf (src, dst, samples * 3) / 3;
+  return conv_yF_yHalf (conversion, src, dst, samples * 3) / 3;
 }
 
 static long
-conv_rgbaF_rgbaHalf (const float *src, uint16_t *dst, long samples)
+conv_rgbaF_rgbaHalf (const Babl *conversion,const float *src, uint16_t *dst, long samples)
 {
-  return conv_yF_yHalf (src, dst, samples * 4) / 4;
+  return conv_yF_yHalf (conversion, src, dst, samples * 4) / 4;
 }
 
 #endif /* defined(USE_SSE4_1) && defined(USE_F16C) && defined(ARCH_X86_64) */
index 71fa008f2104758dd590385b99511748b3d5c728..1f5468fc8a2ff707985fb9c4d99f9ebbdd9a57a8 100644 (file)
@@ -38,7 +38,7 @@
 static const float BABL_ALPHA_THRESHOLD_FLOAT = (float)BABL_ALPHA_THRESHOLD;
 
 static long
-conv_rgbaF_linear_rgbAF_linear (const float *src, float *dst, long samples)
+conv_rgbaF_linear_rgbAF_linear (const Babl *conversion,const float *src, float *dst, long samples)
 {
   long i = 0;
   long remainder;
@@ -96,7 +96,7 @@ conv_rgbaF_linear_rgbAF_linear (const float *src, float *dst, long samples)
 }
 
 static long
-conv_rgbAF_linear_rgbaF_linear_shuffle (const float *src, float *dst, long samples)
+conv_rgbAF_linear_rgbaF_linear_shuffle (const Babl *conversion,const float *src, float *dst, long samples)
 {
   long i = 0;
   long remainder;
@@ -164,7 +164,7 @@ conv_rgbAF_linear_rgbaF_linear_shuffle (const float *src, float *dst, long sampl
 }
 
 static long
-conv_rgbAF_linear_rgbaF_linear_spin (const float *src, float *dst, long samples)
+conv_rgbAF_linear_rgbaF_linear_spin (const Babl *conversion,const float *src, float *dst, long samples)
 {
   long i = 0;
   long remainder;
@@ -297,7 +297,7 @@ gamma_2_2_to_linear_sse2 (__v4sf x)
 
 #define GAMMA_RGBA(func, munge) \
 static inline long \
-func (const float *src, float *dst, long samples)\
+func (const Babl *conversion,const float *src, float *dst, long samples)\
 {\
   int i = samples;\
   if (((uintptr_t)src % 16) + ((uintptr_t)dst % 16) == 0)\
@@ -353,11 +353,11 @@ func (const float *src, float *dst, long samples)\
 GAMMA_RGBA(conv_rgbaF_linear_rgbaF_gamma, linear_to_gamma_2_2_sse2)
 GAMMA_RGBA(conv_rgbaF_gamma_rgbaF_linear, gamma_2_2_to_linear_sse2)
 
-static long conv_rgbaF_linear_rgbAF_gamma (const float *src, float *dst, long samples)
+static long conv_rgbaF_linear_rgbAF_gamma (const Babl *conversion,const float *src, float *dst, long samples)
 {
   float *tmp = alloca (sizeof(float)*4*samples);
-  conv_rgbaF_linear_rgbaF_gamma (src, tmp, samples);
-  conv_rgbaF_linear_rgbAF_linear (tmp, dst, samples);
+  conv_rgbaF_linear_rgbaF_gamma (conversion, src, tmp, samples);
+  conv_rgbaF_linear_rgbAF_linear (conversion, tmp, dst, samples);
   return samples;
 }
 
@@ -380,7 +380,7 @@ static long conv_rgbaF_linear_rgbAF_gamma (const float *src, float *dst, long sa
 }\
 
 static long
-conv_yaF_linear_yaF_gamma (const float *src, float *dst, long samples)
+conv_yaF_linear_yaF_gamma (const Babl *conversion,const float *src, float *dst, long samples)
 {
   long total = samples;
 
@@ -418,7 +418,7 @@ conv_yaF_linear_yaF_gamma (const float *src, float *dst, long samples)
 
 
 static long
-conv_yaF_gamma_yaF_linear (const float *src, float *dst, long samples)
+conv_yaF_gamma_yaF_linear (const Babl *conversion,const float *src, float *dst, long samples)
 {
   long total = samples;
 
@@ -455,7 +455,7 @@ conv_yaF_gamma_yaF_linear (const float *src, float *dst, long samples)
 }
 
 static inline long
-conv_yF_linear_yF_gamma (const float *src, float *dst, long samples)
+conv_yF_linear_yF_gamma (const Babl *conversion,const float *src, float *dst, long samples)
 {
   long total = samples;
 
@@ -495,7 +495,7 @@ conv_yF_linear_yF_gamma (const float *src, float *dst, long samples)
 }
 
 static inline long
-conv_yF_gamma_yF_linear (const float *src, float *dst, long samples)
+conv_yF_gamma_yF_linear (const Babl *conversion,const float *src, float *dst, long samples)
 {
   long total = samples;
 
@@ -536,16 +536,16 @@ conv_yF_gamma_yF_linear (const float *src, float *dst, long samples)
 
 
 static long
-conv_rgbF_linear_rgbF_gamma (const float *src, float *dst, long samples)
+conv_rgbF_linear_rgbF_gamma (const Babl *conversion,const float *src, float *dst, long samples)
 {
-  return conv_yF_linear_yF_gamma (src, dst, samples * 3) / 3;
+  return conv_yF_linear_yF_gamma (conversion, src, dst, samples * 3) / 3;
 }
 
 
 static long
-conv_rgbF_gamma_rgbF_linear (const float *src, float *dst, long samples)
+conv_rgbF_gamma_rgbF_linear (const Babl *conversion,const float *src, float *dst, long samples)
 {
-  return conv_yF_gamma_yF_linear (src, dst, samples * 3) / 3;
+  return conv_yF_gamma_yF_linear (conversion, src, dst, samples * 3) / 3;
 }
 
 #endif /* defined(USE_SSE2) */
index 843e0308a0ffcf6fd00f7bdf677c6edd46c25844..71ae0b2c83a008db6715462f7d090d4d7fe489d1 100644 (file)
@@ -35,7 +35,7 @@
 static const __v4sf  u16_float = Q (1.f / 65535);
 
 static long
-conv_rgba16_rgbaF (const uint16_t *src, float *dst, long samples)
+conv_rgba16_rgbaF (const Babl *conversion,const uint16_t *src, float *dst, long samples)
 {
   long i = 0;
 
@@ -71,7 +71,7 @@ conv_rgba16_rgbaF (const uint16_t *src, float *dst, long samples)
 }
 
 static long
-conv_rgba16_rgbAF (const uint16_t *src, float *dst, long samples)
+conv_rgba16_rgbAF (const Babl *conversion,const uint16_t *src, float *dst, long samples)
 {
   long i = 0;
   long remainder;
index 5353de6cb6ad8c39cb908e10aff215abab70e5ab..cfa146ecd50d172ce527c881dd3445336554129b 100644 (file)
@@ -31,7 +31,7 @@
 #include "extensions/util.h"
 
 static inline long
-conv_yF_y8 (const float *src, uint8_t *dst, long samples)
+conv_yF_y8 (const Babl *conversion,const float *src, uint8_t *dst, long samples)
 {
   const __v4sf *s_vec;
   __m128i      *d_vec;
@@ -128,28 +128,28 @@ conv_yF_y8 (const float *src, uint8_t *dst, long samples)
 }
 
 static long
-conv_yaF_ya8 (const float *src, uint8_t *dst, long samples)
+conv_yaF_ya8 (const Babl *conversion,const float *src, uint8_t *dst, long samples)
 {
-  return conv_yF_y8 (src, dst, samples * 2) / 2;
+  return conv_yF_y8 (conversion, src, dst, samples * 2) / 2;
 }
 
 
 static long
-conv_rgbF_rgb8 (const float *src, uint8_t *dst, long samples)
+conv_rgbF_rgb8 (const Babl *conversion,const float *src, uint8_t *dst, long samples)
 {
-  return conv_yF_y8 (src, dst, samples * 3) / 3;
+  return conv_yF_y8 (conversion, src, dst, samples * 3) / 3;
 }
 
 static long
-conv_rgbaF_rgba8 (const float *src, uint8_t *dst, long samples)
+conv_rgbaF_rgba8 (const Babl *conversion,const float *src, uint8_t *dst, long samples)
 {
-  return conv_yF_y8 (src, dst, samples * 4) / 4;
+  return conv_yF_y8 (conversion, src, dst, samples * 4) / 4;
 }
 
 static long
-conv_rgbAF_rgbA8 (const float *src, uint8_t *dst, long samples)
+conv_rgbAF_rgbA8 (const Babl *conversion,const float *src, uint8_t *dst, long samples)
 {
-  return conv_yF_y8 (src, dst, samples * 4) / 4;
+  return conv_yF_y8 (conversion, src, dst, samples * 4) / 4;
 }
 
 #endif
index 73f63e3a3eb887316d247df49d7afff42a1328ae..b6f7c42956c84c4f0a4c1a082b550b859022931d 100644 (file)
@@ -31,7 +31,7 @@
 #include "extensions/util.h"
 
 static inline long
-conv_y8_yF (const uint8_t *src, float *dst, long samples)
+conv_y8_yF (const Babl *conversion,const uint8_t *src, float *dst, long samples)
 {
   const float     factor = 1.0f / 255.0f;
   const __v4sf    factor_vec = {1.0f / 255.0f, 1.0f / 255.0f, 1.0f / 255.0f, 1.0f / 255.0f};
@@ -67,21 +67,21 @@ conv_y8_yF (const uint8_t *src, float *dst, long samples)
 }
 
 static long
-conv_ya8_yaF (const uint8_t *src, float *dst, long samples)
+conv_ya8_yaF (const Babl *conversion,const uint8_t *src, float *dst, long samples)
 {
-  return conv_y8_yF (src, dst, samples * 2) / 2;
+  return conv_y8_yF (conversion, src, dst, samples * 2) / 2;
 }
 
 static long
-conv_rgb8_rgbF (const uint8_t *src, float *dst, long samples)
+conv_rgb8_rgbF (const Babl *conversion,const uint8_t *src, float *dst, long samples)
 {
-  return conv_y8_yF (src, dst, samples * 3) / 3;
+  return conv_y8_yF (conversion, src, dst, samples * 3) / 3;
 }
 
 static long
-conv_rgba8_rgbaF (const uint8_t *src, float *dst, long samples)
+conv_rgba8_rgbaF (const Babl *conversion,const uint8_t *src, float *dst, long samples)
 {
-  return conv_y8_yF (src, dst, samples * 4) / 4;
+  return conv_y8_yF (conversion, src, dst, samples * 4) / 4;
 }
 
 #endif
index 6be18ca2647d7e44d2d08d35f170e1669150196b..c7344a1366335ad74c5a5eaa3a30bf7ba9fda8ad 100644 (file)
@@ -43,7 +43,7 @@ conv_float_u8_two_table_map (float value)
 }
 
 static long
-conv_rgbafloat_linear_cairo24_le (unsigned char *src_char,
+conv_rgbafloat_linear_cairo24_le (const Babl *conversion,unsigned char *src_char,
                                   unsigned char *dst,
                                   long           samples)
 {
@@ -69,7 +69,7 @@ conv_rgbafloat_linear_cairo24_le (unsigned char *src_char,
 }
 
 static long
-conv_rgbfloat_linear_cairo24_le (unsigned char *src_char,
+conv_rgbfloat_linear_cairo24_le (const Babl *conversion,unsigned char *src_char,
                                  unsigned char *dst,
                                  long           samples)
 {
@@ -89,7 +89,7 @@ conv_rgbfloat_linear_cairo24_le (unsigned char *src_char,
 }
 
 static long
-conv_rgbafloat_linear_rgbu8_gamma (unsigned char *src_char,
+conv_rgbafloat_linear_rgbu8_gamma (const Babl *conversion,unsigned char *src_char,
                                    unsigned char *dst,
                                    long           samples)
 {
@@ -118,7 +118,7 @@ conv_rgbafloat_linear_rgbu8_gamma (unsigned char *src_char,
 
 
 static long
-conv_rgbafloat_linear_rgbau8_gamma (unsigned char *src_char,
+conv_rgbafloat_linear_rgbau8_gamma (const Babl *conversion,unsigned char *src_char,
                                     unsigned char *dst,
                                     long           samples)
 {
@@ -148,7 +148,7 @@ conv_rgbafloat_linear_rgbau8_gamma (unsigned char *src_char,
 }
 
 static long
-conv_rgbfloat_linear_rgbu8_gamma (unsigned char *src_char,
+conv_rgbfloat_linear_rgbu8_gamma (const Babl *conversion,unsigned char *src_char,
                                   unsigned char *dst,
                                   long           samples)
 {
@@ -168,7 +168,7 @@ conv_rgbfloat_linear_rgbu8_gamma (unsigned char *src_char,
 }
 
 static long
-conv_yfloat_linear_yu8_gamma (unsigned char *src_char,
+conv_yfloat_linear_yu8_gamma (const Babl *conversion,unsigned char *src_char,
                               unsigned char *dst,
                               long           samples)
 {
@@ -183,7 +183,7 @@ conv_yfloat_linear_yu8_gamma (unsigned char *src_char,
 }
 
 static long
-conv_yafloat_linear_yau8_gamma (unsigned char *src_char,
+conv_yafloat_linear_yau8_gamma (const Babl *conversion,unsigned char *src_char,
                                 unsigned char *dst,
                                 long           samples)
 {
index 11db5638aeabccd44e97972ec41df8dce7919e9c..a7b1e28b6aef3bbf48c6554f72de86423c921764 100644 (file)
@@ -72,7 +72,7 @@ models (void)
 
 
 static long
-rgba_to_ycbcra709 (char *src,
+rgba_to_ycbcra709 (const Babl *conversion,char *src,
                    char *dst,
                    long  n)
 {
@@ -106,7 +106,7 @@ rgba_to_ycbcra709 (char *src,
 
 
 static long
-rgba_to_ycbcr709 (char *src,
+rgba_to_ycbcr709 (const Babl *conversion,char *src,
                   char *dst,
                   long  n)
 {
@@ -138,7 +138,7 @@ rgba_to_ycbcr709 (char *src,
 
 
 static long
-ycbcra709_to_rgba (char *src,
+ycbcra709_to_rgba (const Babl *conversion,char *src,
                 char *dst,
                 long  n)
 {
@@ -172,7 +172,7 @@ ycbcra709_to_rgba (char *src,
 
 
 static long
-ycbcr709_to_rgba (char *src,
+ycbcr709_to_rgba (const Babl *conversion,char *src,
                char *dst,
                long  n)
 {